1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-22 17:35:59 +03:00

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!)
This commit is contained in:
Peter Rajnoha 2012-09-12 09:47:40 +02:00
parent 4ededc698f
commit 3127160626
2 changed files with 4 additions and 6 deletions

View File

@ -1,5 +1,6 @@
Version 2.02.98 - Version 2.02.98 -
================================= =================================
Fix vgchange -aay to activate proper logical volumes.
Properly handle 'resync' of RAID LVs. Properly handle 'resync' of RAID LVs.
Disallow addition of RAID images until the array is in-sync. Disallow addition of RAID images until the array is in-sync.
Fix RAID LV creation with '--test' so valid commands do not fail. Fix RAID LV creation with '--test' so valid commands do not fail.

View File

@ -131,11 +131,8 @@ static int _activate_lvs_in_vg(struct cmd_context *cmd, struct volume_group *vg,
continue; continue;
} }
if (activate == CHANGE_AAY) { if (activate == CHANGE_AAY && !lv_passes_auto_activation_filter(cmd, lv))
if (!lv_passes_auto_activation_filter(cmd, lv))
continue; continue;
activate = CHANGE_ALY;
}
expected_count++; expected_count++;
@ -157,7 +154,7 @@ static int _activate_lvs_in_vg(struct cmd_context *cmd, struct volume_group *vg,
stack; stack;
continue; continue;
} }
} else if (activate == CHANGE_ALY) { } else if (activate == CHANGE_AAY || activate == CHANGE_ALY) {
if (!activate_lv_local(cmd, lv)) { if (!activate_lv_local(cmd, lv)) {
stack; stack;
continue; continue;