mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
Mirrors can be layered - as in the case of an converting 2-way
to 3-way mirror. When conversion operations are performed on these types of mirrors, log options can be confused/ignored. In the case of a converting 3-way mirror, we have a top-level 2-way corelog mirror whose legs are 1) a 2-way disk-log mirror and 2) a linear device. If we wish to convert this 3-way mirror to a 2-way mirror, the linear device is removed and the extra top layer is eliminated. If we also wished to convert the disk log to a core log in the same step, ambiguity creeps in. It is somewhat obvious what the user wants - a 2-way mirror with a corelog. However, looking at the top level mirror before compression, it seems that the mirror already has a core log. This is why the operation seemed to fail. This patch simply re-evaluates what mirrored_seg points to after a compression and then considers the log argument. This is a fix for bug 599898.
This commit is contained in:
parent
548cc88947
commit
a7d355a28c
@ -1,5 +1,6 @@
|
||||
Version 2.02.68 -
|
||||
===============================
|
||||
Honor log argument when down-converting stacked mirror.
|
||||
Sleep to workaround clvmd -S race: socket closed early and server drops cmd.
|
||||
Use early udev synchronisation and update of dev nodes for clustered mirrors.
|
||||
Remove incorrect inclusion of kdev_t.h from cmirrord/functions.h.
|
||||
|
@ -851,6 +851,9 @@ static int _remove_mirror_images(struct logical_volume *lv,
|
||||
log_error("Failed to add mirror images");
|
||||
return 0;
|
||||
}
|
||||
mirrored_seg = first_seg(lv);
|
||||
if (remove_log && !detached_log_lv)
|
||||
detached_log_lv = detach_mirror_log(mirrored_seg);
|
||||
} else if (new_area_count == 0) {
|
||||
log_very_verbose("All mimages of %s are gone", lv->name);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user