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

Jonathan Brassow jbrassow at redhat.com
Thu Dec 17 15:19:55 UTC 2009


This new patch achieves the same result as the old one in a simpler way.

ACK.

  brassow

On Dec 17, 2009, at 8:50 AM, Jonathan Brassow wrote:

> 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
>
> --
> 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