]> sourceware.org Git - lvm2.git/commitdiff
Remove LOCK_KEEP and READ_CHECK_EXISTENCE from vgsplit.
authorDave Wysochanski <dwysocha@redhat.com>
Wed, 8 Jul 2009 14:27:37 +0000 (14:27 +0000)
committerDave Wysochanski <dwysocha@redhat.com>
Wed, 8 Jul 2009 14:27:37 +0000 (14:27 +0000)
Remove LOCK_KEEP and READ_CHECK_EXISTENCE from vgsplit.
These flags are no longer necessary.  We now check for existence
in a differnet function, and it is not necessary to keep the lock.
Removing these flags simplifies the new vg_read() interface.
After this patch, we can fully remove LOCK_KEEP.
READ_CHECK_EXISTENCE needs a bit more work before full removal.

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
tools/vgsplit.c

index 9cd90b8895c9060dbb402d1cccb53114990ef72c..c1a1b06c402ab90963aa403ac29df29a267ca6c0 100644 (file)
@@ -342,11 +342,13 @@ int vgsplit(struct cmd_context *cmd, int argc, char **argv)
                existing_vg = 1;
                vg_to = vg_read_for_update(cmd, vg_name_to, NULL,
                                           READ_REQUIRE_RESIZEABLE |
-                                          LOCK_NONBLOCKING | LOCK_KEEP |
-                                          READ_CHECK_EXISTENCE);
+                                          LOCK_NONBLOCKING);
 
-               if (vg_read_error(vg_to))
-                       goto_bad;
+               if (vg_read_error(vg_to)) {
+                       vg_release(vg_to);
+                       stack;
+                       goto bad2;
+               }
 
                if (new_vg_option_specified(cmd)) {
                        log_error("Volume group \"%s\" exists, but new VG "
@@ -483,7 +485,8 @@ int vgsplit(struct cmd_context *cmd, int argc, char **argv)
        r = ECMD_PROCESSED;
 
 bad:
-       unlock_and_release_vg(cmd, vg_from, vg_name_from);
        unlock_and_release_vg(cmd, vg_to, vg_name_to);
+bad2:
+       unlock_and_release_vg(cmd, vg_from, vg_name_from);
        return r;
 }
This page took 0.040537 seconds and 5 git commands to generate.