[lvm-devel] [PATCH] Fix removal of multiple devices from a mirror.

Jonathan Brassow jbrassow at redhat.com
Thu Dec 17 14:50:31 UTC 2009


Is this problem still present after applying the previous patch:
https://www.redhat.com/archives/lvm-devel/2009-November/msg00043.html

The above patch was posted to fix a problem with specified PVs not  
being handled properly.
  brassow

On Dec 17, 2009, at 7:51 AM, Petr Rockai wrote:

> Hi,
>
> the code for removing mirror images, as it is, shifts the first failed
> leg twice and fails to shift the second failed one at all, which
> reorders the mirror image array in such a way that a wrong leg is
> removed as a result.
>
> The trivial patch below fixes that behaviour by adjusting the array
> pointer to accommodate for the shift. Fixes RHBZ 543225.
>
> Yours,
>   Petr.
>
> Index: lib/metadata/mirror.c
> ===================================================================
> RCS file: /cvs/lvm2/LVM2/lib/metadata/mirror.c,v
> retrieving revision 1.99
> diff -u -p -r1.99 mirror.c
> --- lib/metadata/mirror.c	9 Dec 2009 19:53:39 -0000	1.99
> +++ lib/metadata/mirror.c	17 Dec 2009 13:43:30 -0000
> @@ -533,6 +533,7 @@ static int _remove_mirror_images(struct
> 			    _is_mirror_image_removable(sub_lv, removable_pvs)) {
> 				if (!shift_mirror_images(mirrored_seg, s))
> 					return_0;
> +				s--; /* adjust counter after shifting */
> 				new_area_count--;
> 			}
> 		}
>
> --
> lvm-devel mailing list
> lvm-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/lvm-devel




More information about the lvm-devel mailing list