]> sourceware.org Git - lvm2.git/commitdiff
The patch fixes some lvconvert issues (WRT mirror <-> mirror).
authorJonathan Earl Brassow <jbrassow@redhat.com>
Thu, 7 Jan 2010 20:42:55 +0000 (20:42 +0000)
committerJonathan Earl Brassow <jbrassow@redhat.com>
Thu, 7 Jan 2010 20:42:55 +0000 (20:42 +0000)
The default log option for a mirror is 'disk'.  If the log
type is not explicitly stated on the command line when
converting from an X-way mirror to a Y-way mirror, 'disk'
is chosen.  So, if you have a 'core' log mirror and you
convert, your result will contain a 'disk' log.

This patch remembers what the old log type was.  If the
user is merely trying to switch the number of mirror
images, the log type is now kept the same.

There is one historical behaviour I left in place...
If you have a 2-way, core-log mirror and you use lvconvert to
specify you want a 2-way mirror - without specifying the
log type - you will get a 2-way, disk-log mirror.

Signed-off-by: Jonathan Brassow <jbrassow@redhat.com>
Informal-IRC-ACK-by: agk
tools/lvconvert.c

index 6629cd4ffb789dd495d53a76576b75cd6c02f394..06cbb338053379b0140e298bdf15d1c69ccded7e 100644 (file)
@@ -628,6 +628,17 @@ static int _lvconvert_mirrors(struct cmd_context *cmd, struct logical_volume *lv
                return 0;
        }
 
+       /*
+        * If we are converting from one type of mirror to another, and
+        * the type of log wasn't specified, then let's keep the log type
+        * the same.
+        */
+       if (existing_mirrors && lp->mirrors &&
+           (lp->mirrors != existing_mirrors) &&
+           !arg_count(cmd, mirrorlog_ARG) && !arg_count(cmd, corelog_ARG)) {
+               corelog = first_seg(lv)->log_lv ? 0 : 1;
+       }
+
        if (repair) {
                cmd->handles_missing_pvs = 1;
                cmd->partial_activation = 1;
This page took 0.0383 seconds and 5 git commands to generate.