diff options
-rw-r--r-- | tools/lvcreate.c | 4 | ||||
-rw-r--r-- | tools/lvrename.c | 4 | ||||
-rw-r--r-- | tools/lvresize.c | 1 | ||||
-rw-r--r-- | tools/polldaemon.c | 1 | ||||
-rw-r--r-- | tools/pvchange.c | 4 | ||||
-rw-r--r-- | tools/pvmove.c | 1 | ||||
-rw-r--r-- | tools/pvresize.c | 4 | ||||
-rw-r--r-- | tools/toollib.c | 1 | ||||
-rw-r--r-- | tools/vgextend.c | 1 | ||||
-rw-r--r-- | tools/vgmerge.c | 7 | ||||
-rw-r--r-- | tools/vgrename.c | 4 | ||||
-rw-r--r-- | tools/vgsplit.c | 4 |
12 files changed, 27 insertions, 9 deletions
diff --git a/tools/lvcreate.c b/tools/lvcreate.c index 030aa0c9..70f237a6 100644 --- a/tools/lvcreate.c +++ b/tools/lvcreate.c @@ -995,8 +995,10 @@ int lvcreate(struct cmd_context *cmd, int argc, char **argv) log_verbose("Finding volume group \"%s\"", lp.vg_name); vg = vg_read_for_update(cmd, lp.vg_name, NULL, 0); - if (vg_read_error(vg)) + if (vg_read_error(vg)) { + vg_release(vg); return ECMD_FAILED; + } if (!_lvcreate(cmd, vg, &lp)) r = ECMD_FAILED; diff --git a/tools/lvrename.c b/tools/lvrename.c index 53ea1165..74118546 100644 --- a/tools/lvrename.c +++ b/tools/lvrename.c @@ -103,8 +103,10 @@ int lvrename(struct cmd_context *cmd, int argc, char **argv) log_verbose("Checking for existing volume group \"%s\"", vg_name); vg = vg_read_for_update(cmd, vg_name, NULL, 0); - if (vg_read_error(vg)) + if (vg_read_error(vg)) { + vg_release(vg); return ECMD_FAILED; + } if (!(lvl = find_lv_in_vg(vg, lv_name_old))) { log_error("Existing logical volume \"%s\" not found in " diff --git a/tools/lvresize.c b/tools/lvresize.c index b5587921..033078f3 100644 --- a/tools/lvresize.c +++ b/tools/lvresize.c @@ -673,6 +673,7 @@ int lvresize(struct cmd_context *cmd, int argc, char **argv) log_verbose("Finding volume group %s", lp.vg_name); vg = vg_read_for_update(cmd, lp.vg_name, NULL, 0); if (vg_read_error(vg)) { + vg_release(vg); stack; return ECMD_FAILED; } diff --git a/tools/polldaemon.c b/tools/polldaemon.c index 8c5c7da7..4dcbc22e 100644 --- a/tools/polldaemon.c +++ b/tools/polldaemon.c @@ -150,6 +150,7 @@ static int _wait_for_single_mirror(struct cmd_context *cmd, const char *name, co /* Locks the (possibly renamed) VG again */ vg = parms->poll_fns->get_copy_vg(cmd, name, uuid); if (vg_read_error(vg)) { + vg_release(vg); log_error("ABORTING: Can't reread VG for %s", name); /* What more could we do here? */ return 0; diff --git a/tools/pvchange.c b/tools/pvchange.c index 1c9d3944..efc780b6 100644 --- a/tools/pvchange.c +++ b/tools/pvchange.c @@ -58,8 +58,10 @@ static int _pvchange_single(struct cmd_context *cmd, struct physical_volume *pv, log_verbose("Finding volume group %s of physical volume %s", vg_name, pv_name); vg = vg_read_for_update(cmd, vg_name, NULL, 0); - if (vg_read_error(vg)) + if (vg_read_error(vg)) { + vg_release(vg); return_0; + } if (!(pvl = find_pv_in_vg(vg, pv_name))) { log_error diff --git a/tools/pvmove.c b/tools/pvmove.c index d288e6f4..65b76068 100644 --- a/tools/pvmove.c +++ b/tools/pvmove.c @@ -387,6 +387,7 @@ static int _set_up_pvmove(struct cmd_context *cmd, const char *pv_name, vg = _get_vg(cmd, pv_vg_name(pv)); if (vg_read_error(vg)) { + vg_release(vg); stack; return ECMD_FAILED; } diff --git a/tools/pvresize.c b/tools/pvresize.c index 336da9ad..964d6a54 100644 --- a/tools/pvresize.c +++ b/tools/pvresize.c @@ -100,7 +100,7 @@ static int _pv_resize_single(struct cmd_context *cmd, log_error("%s: Couldn't get size.", pv_name); goto bad; } - + if (new_size) { if (new_size > size) log_warn("WARNING: %s: Overriding real size. " @@ -127,7 +127,7 @@ static int _pv_resize_single(struct cmd_context *cmd, if (vg) { pv->size -= pv_pe_start(pv); new_pe_count = pv_size(pv) / vg->extent_size; - + if (!new_pe_count) { log_error("%s: Size must leave space for at " "least one physical extent of " diff --git a/tools/toollib.c b/tools/toollib.c index 1fe92495..248fafbb 100644 --- a/tools/toollib.c +++ b/tools/toollib.c @@ -354,6 +354,7 @@ int process_each_segment_in_pv(struct cmd_context *cmd, vg = vg_read(cmd, vg_name, NULL, 0); if (vg_read_error(vg)) { + vg_release(vg); log_error("Skipping volume group %s", vg_name); return ECMD_FAILED; } diff --git a/tools/vgextend.c b/tools/vgextend.c index 56925828..1000dc2c 100644 --- a/tools/vgextend.c +++ b/tools/vgextend.c @@ -45,6 +45,7 @@ int vgextend(struct cmd_context *cmd, int argc, char **argv) vg = vg_read_for_update(cmd, vg_name, NULL, READ_REQUIRE_RESIZEABLE | LOCK_NONBLOCKING); if (vg_read_error(vg)) { + vg_release(vg); unlock_vg(cmd, VG_ORPHANS); return ECMD_FAILED; } diff --git a/tools/vgmerge.c b/tools/vgmerge.c index 3ed6c507..4a9e3772 100644 --- a/tools/vgmerge.c +++ b/tools/vgmerge.c @@ -29,13 +29,16 @@ static int _vgmerge_single(struct cmd_context *cmd, const char *vg_name_to, log_verbose("Checking for volume group \"%s\"", vg_name_to); vg_to = vg_read_for_update(cmd, vg_name_to, NULL, 0); - if (vg_read_error(vg_to)) - return ECMD_FAILED; + if (vg_read_error(vg_to)) { + vg_release(vg_to); + return ECMD_FAILED; + } log_verbose("Checking for volume group \"%s\"", vg_name_from); vg_from = vg_read_for_update(cmd, vg_name_from, NULL, LOCK_NONBLOCKING); if (vg_read_error(vg_from)) { + vg_release(vg_from); unlock_and_release_vg(cmd, vg_to, vg_name_to); return ECMD_FAILED; } diff --git a/tools/vgrename.c b/tools/vgrename.c index 4d115d04..57229e7b 100644 --- a/tools/vgrename.c +++ b/tools/vgrename.c @@ -73,8 +73,10 @@ static int vg_rename_path(struct cmd_context *cmd, const char *old_vg_path, /* FIXME we used to print an error about EXPORTED, but proceeded nevertheless. */ vg = vg_read_for_update(cmd, vg_name_old, vgid, READ_ALLOW_EXPORTED); - if (vg_read_error(vg)) + if (vg_read_error(vg)) { + vg_release(vg); return_0; + } if (lvs_in_vg_activated_by_uuid_only(vg)) { unlock_and_release_vg(cmd, vg, vg_name_old); diff --git a/tools/vgsplit.c b/tools/vgsplit.c index bd9e8ec1..9cd90b88 100644 --- a/tools/vgsplit.c +++ b/tools/vgsplit.c @@ -317,8 +317,10 @@ int vgsplit(struct cmd_context *cmd, int argc, char **argv) vg_from = vg_read_for_update(cmd, vg_name_from, NULL, READ_REQUIRE_RESIZEABLE); - if (vg_read_error(vg_from)) + if (vg_read_error(vg_from)) { + vg_release(vg_from); return ECMD_FAILED; + } log_verbose("Checking for new volume group \"%s\"", vg_name_to); /* |