diff --git a/WHATS_NEW b/WHATS_NEW index f20b42be4..3ffec8afe 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.51 - ================================ + Make lvconvert honour log mirror options combined with downconversion. Allow LV suspend while --ignorelockingfailure is in force. Update synopsis in lvconvert manpage to mention --repair. Set cookies in activation code and wait for udev to complete processing. diff --git a/test/t-mirror-lvconvert.sh b/test/t-mirror-lvconvert.sh index e0ede5dd4..a699716b2 100755 --- a/test/t-mirror-lvconvert.sh +++ b/test/t-mirror-lvconvert.sh @@ -321,3 +321,9 @@ lvconvert -m1 $vg/$lv1 check_mirror_count_ $vg/$lv1 2 check_mirror_log_ $vg/$lv1 check_and_cleanup_lvs_ + +# BZ 463272: disk log mirror convert option is lost if downconvert option is also given +prepare_lvs_ +lvcreate -l1 -m2 --corelog -n $lv1 $vg +lvconvert -m1 --mirrorlog disk $vg/$lv1 +check_mirror_log_ $vg/$lv1 diff --git a/tools/lvconvert.c b/tools/lvconvert.c index c272af2f8..b3deebcd0 100644 --- a/tools/lvconvert.c +++ b/tools/lvconvert.c @@ -673,6 +673,9 @@ static int _lvconvert_mirrors(struct cmd_context *cmd, struct logical_volume *lv (corelog || lp->mirrors == 1) ? 1U : 0U, remove_pvs, 0)) return_0; + if (lp->mirrors > 1 && + !_lv_update_log_type(cmd, lp, lv, corelog)) + return_0; } else if (!(lv->status & MIRRORED)) { /* * Converting from linear to mirror