summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Wysochanski <dwysocha@redhat.com>2009-08-13 17:16:38 +0000
committerDave Wysochanski <dwysocha@redhat.com>2009-08-13 17:16:38 +0000
commitcdc8e54e3d0ad4ffe0e5ec47b42ff1000cf82d8d (patch)
treeb89837dc8d9f9b093b10db73acec8793f88da9e2
parent454bd4dc3bc9756c1e157fb10a37c4c5365f14f0 (diff)
downloadlvm2-cdc8e54e3d0ad4ffe0e5ec47b42ff1000cf82d8d.tar.gz
lvm2-cdc8e54e3d0ad4ffe0e5ec47b42ff1000cf82d8d.tar.xz
lvm2-cdc8e54e3d0ad4ffe0e5ec47b42ff1000cf82d8d.zip
Fix error paths for vgcfgrestore when locking fails.
-rw-r--r--WHATS_NEW1
-rw-r--r--tools/vgcfgrestore.c4
2 files changed, 3 insertions, 2 deletions
diff --git a/WHATS_NEW b/WHATS_NEW
index 0f138856..2ca6d586 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.52 -
=================================
+ Fix vgcfgrestore error paths when locking fails (2.02.49).
Added configure --enable-clogd to conditionally build the cluster log daemon.
Make lvchange --refresh only take a read lock on volume group.
Fix bug where non-blocking file locks could be granted in error.
diff --git a/tools/vgcfgrestore.c b/tools/vgcfgrestore.c
index 0e99f1c8..dda22bea 100644
--- a/tools/vgcfgrestore.c
+++ b/tools/vgcfgrestore.c
@@ -45,12 +45,12 @@ int vgcfgrestore(struct cmd_context *cmd, int argc, char **argv)
if (!lock_vol(cmd, vg_name, LCK_VG_WRITE)) {
log_error("Unable to lock volume group %s", vg_name);
- unlock_vg(cmd, VG_ORPHANS);
return ECMD_FAILED;
}
if (!lock_vol(cmd, VG_ORPHANS, LCK_VG_WRITE)) {
log_error("Unable to lock orphans");
+ unlock_vg(cmd, vg_name);
return ECMD_FAILED;
}
@@ -58,8 +58,8 @@ int vgcfgrestore(struct cmd_context *cmd, int argc, char **argv)
backup_restore_from_file(cmd, vg_name,
arg_str_value(cmd, file_ARG, "")) :
backup_restore(cmd, vg_name))) {
- unlock_vg(cmd, vg_name);
unlock_vg(cmd, VG_ORPHANS);
+ unlock_vg(cmd, vg_name);
log_error("Restore failed.");
return ECMD_FAILED;
}