[lvm-devel] LVM2/tools vgsplit.c
wysochanski at sourceware.org
wysochanski at sourceware.org
Wed Jul 8 14:27:38 UTC 2009
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: wysochanski at sourceware.org 2009-07-08 14:27:38
Modified files:
tools : vgsplit.c
Log message:
Remove LOCK_KEEP and READ_CHECK_EXISTENCE from vgsplit.
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 at redhat.com>
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/vgsplit.c.diff?cvsroot=lvm2&r1=1.78&r2=1.79
--- LVM2/tools/vgsplit.c 2009/07/07 01:18:35 1.78
+++ LVM2/tools/vgsplit.c 2009/07/08 14:27:37 1.79
@@ -342,11 +342,13 @@
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 @@
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;
}
More information about the lvm-devel
mailing list