diff options
author | Alasdair Kergon <agk@redhat.com> | 2008-01-10 18:35:51 +0000 |
---|---|---|
committer | Alasdair Kergon <agk@redhat.com> | 2008-01-10 18:35:51 +0000 |
commit | 06ea7eaa27711301f9991e128e3d5db4f87be123 (patch) | |
tree | 19c6820adb988d9c062684c39f854b59352f04ed /tools/lvchange.c | |
parent | 4a898ae95be1d52eabbb9ad05735838b5be93c4b (diff) | |
download | lvm2-06ea7eaa27711301f9991e128e3d5db4f87be123.tar.gz lvm2-06ea7eaa27711301f9991e128e3d5db4f87be123.tar.xz lvm2-06ea7eaa27711301f9991e128e3d5db4f87be123.zip |
Various lvconvert/polldaemon-related fixes from NEC. See lvm-devel
for original patches & explanations.
Diffstat (limited to 'tools/lvchange.c')
-rw-r--r-- | tools/lvchange.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/tools/lvchange.c b/tools/lvchange.c index b5075d99..a844d053 100644 --- a/tools/lvchange.c +++ b/tools/lvchange.c @@ -106,6 +106,8 @@ static int lvchange_availability(struct cmd_context *cmd, { int activate; const char *pvname; + char *lv_full_name; + uint32_t len; activate = arg_uint_value(cmd, available_ARG, 0); @@ -158,6 +160,18 @@ static int lvchange_availability(struct cmd_context *cmd, pvname); pvmove_poll(cmd, pvname, 1); } + + if (lv->status & CONVERTING) { + len = strlen(lv->vg->name) + strlen(lv->name) + 2; + if (!(lv_full_name = alloca(len))) + return_0; + if (!dm_snprintf(lv_full_name, len, "%s/%s", + lv->vg->name, lv->name)) + return_0; + log_verbose("Spawning background lvconvert process for %s", + lv->name); + lvconvert_poll(cmd, lv_full_name, 1); + } } return 1; |