summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/lvcreate.c4
-rw-r--r--tools/lvrename.c4
-rw-r--r--tools/lvresize.c1
-rw-r--r--tools/polldaemon.c1
-rw-r--r--tools/pvchange.c4
-rw-r--r--tools/pvmove.c1
-rw-r--r--tools/pvresize.c4
-rw-r--r--tools/toollib.c1
-rw-r--r--tools/vgextend.c1
-rw-r--r--tools/vgmerge.c7
-rw-r--r--tools/vgrename.c4
-rw-r--r--tools/vgsplit.c4
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);
/*