diff options
author | Peter Rajnoha <prajnoha@redhat.com> | 2012-09-12 09:47:40 +0200 |
---|---|---|
committer | Peter Rajnoha <prajnoha@redhat.com> | 2012-09-12 09:47:40 +0200 |
commit | 31271606265ec8f7c14734aedbb0a314dfea2cd1 (patch) | |
tree | c82a0c2121972e5138e3a01fdba1aa6a0f1ef456 | |
parent | 4ededc698f32a4cbabaf70bfd3835abab866cbb9 (diff) | |
download | lvm2-31271606265ec8f7c14734aedbb0a314dfea2cd1.tar.gz lvm2-31271606265ec8f7c14734aedbb0a314dfea2cd1.tar.xz lvm2-31271606265ec8f7c14734aedbb0a314dfea2cd1.zip |
vgchange: fix -aay to activate proper volumes
Using 'activation/auto_activation_volume_list = [ "vg/lvol1" ]'.
Before this patch:
3 logical volume(s) in volume group "vg" now active
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
lvol0 vg -wi----- 4.00m
lvol1 vg -wi-a--- 4.00m
lvol2 vg -wi-a--- 4.00m
lvol3 vg -wi-a--- 4.00m
(vg/lvol1 activated as it passes the list and all subsequent volumes too - wrong!)
With this patch:
1 logical volume(s) in volume group "vg" now active
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
lvol0 vg -wi----- 4.00m
lvol1 vg -wi-a--- 4.00m
lvol2 vg -wi----- 4.00m
lvol3 vg -wi----- 4.00m
(only vg/lvol1 activated as it passes the list and no other - correct!)
-rw-r--r-- | WHATS_NEW | 1 | ||||
-rw-r--r-- | tools/vgchange.c | 9 |
2 files changed, 4 insertions, 6 deletions
@@ -1,5 +1,6 @@ Version 2.02.98 - ================================= + Fix vgchange -aay to activate proper logical volumes. Properly handle 'resync' of RAID LVs. Disallow addition of RAID images until the array is in-sync. Fix RAID LV creation with '--test' so valid commands do not fail. diff --git a/tools/vgchange.c b/tools/vgchange.c index 34f61674..fa129f8a 100644 --- a/tools/vgchange.c +++ b/tools/vgchange.c @@ -131,11 +131,8 @@ static int _activate_lvs_in_vg(struct cmd_context *cmd, struct volume_group *vg, continue; } - if (activate == CHANGE_AAY) { - if (!lv_passes_auto_activation_filter(cmd, lv)) - continue; - activate = CHANGE_ALY; - } + if (activate == CHANGE_AAY && !lv_passes_auto_activation_filter(cmd, lv)) + continue; expected_count++; @@ -157,7 +154,7 @@ static int _activate_lvs_in_vg(struct cmd_context *cmd, struct volume_group *vg, stack; continue; } - } else if (activate == CHANGE_ALY) { + } else if (activate == CHANGE_AAY || activate == CHANGE_ALY) { if (!activate_lv_local(cmd, lv)) { stack; continue; |