From 8a902d7e58043caa3975c483eef3ad9a62c2894a Mon Sep 17 00:00:00 2001 From: Dave Wysochanski Date: Thu, 13 Aug 2009 12:03:46 +0000 Subject: [PATCH] Fix vgextend error path - if ORPHAN lock fails, unlock and release vg. Full changes - Fix vgextend error path when lock_vol(VG_ORPHANS) fails - Move lock_vol(VG_ORPHANS) before archive(vg) - safe & simpler error paths - Remove legacy comment/code that no longer applies Found in review - Milan Broz Signed-off-by: Dave Wysochanski --- tools/vgextend.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/tools/vgextend.c b/tools/vgextend.c index 37f4dba96..20c05c3d7 100644 --- a/tools/vgextend.c +++ b/tools/vgextend.c @@ -43,21 +43,15 @@ int vgextend(struct cmd_context *cmd, int argc, char **argv) return ECMD_FAILED; } -/********** FIXME - log_print("maximum logical volume size is %s", - (dummy = lvm_show_size(LVM_LV_SIZE_MAX(vg) / 2, LONG))); - dm_free(dummy); - dummy = NULL; -**********/ - - if (!archive(vg)) - goto error; - if (!lock_vol(cmd, VG_ORPHANS, LCK_VG_WRITE)) { log_error("Can't get lock for orphan PVs"); + unlock_and_release_vg(cmd, vg, vg_name); return ECMD_FAILED; } + if (!archive(vg)) + goto error; + /* extend vg */ if (!vg_extend(vg, argc, argv)) goto error; -- 2.43.5