diff options
author | Dave Wysochanski <dwysocha@redhat.com> | 2009-06-09 14:30:16 +0000 |
---|---|---|
committer | Dave Wysochanski <dwysocha@redhat.com> | 2009-06-09 14:30:16 +0000 |
commit | f3a56d49e3f4d36f57f6b22a30bf598f863fb60a (patch) | |
tree | 89934b5bdb57a727da5fb9edbae76df33dde2ebf /tools/vgrename.c | |
parent | 07b0c948eede2adceb2d507b5e0d34b061bbb836 (diff) | |
download | lvm2-f3a56d49e3f4d36f57f6b22a30bf598f863fb60a.tar.gz lvm2-f3a56d49e3f4d36f57f6b22a30bf598f863fb60a.tar.xz lvm2-f3a56d49e3f4d36f57f6b22a30bf598f863fb60a.zip |
Update vgrename to use vg_lock_newname.
Diffstat (limited to 'tools/vgrename.c')
-rw-r--r-- | tools/vgrename.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/tools/vgrename.c b/tools/vgrename.c index 932c4d7b..b2366a48 100644 --- a/tools/vgrename.c +++ b/tools/vgrename.c @@ -28,7 +28,8 @@ static int vg_rename_path(struct cmd_context *cmd, const char *old_vg_path, char *vg_name_new; const char *vgid = NULL, *vg_name, *vg_name_old; char old_path[NAME_LEN], new_path[NAME_LEN]; - struct volume_group *vg = NULL, *vg_new = NULL; + struct volume_group *vg = NULL; + uint32_t rc; vg_name_old = skip_dev_dir(cmd, old_vg_path, NULL); vg_name_new = skip_dev_dir(cmd, new_vg_path, NULL); @@ -100,17 +101,19 @@ static int vg_rename_path(struct cmd_context *cmd, const char *old_vg_path, log_verbose("Checking for new volume group \"%s\"", vg_name_new); - if (!lock_vol(cmd, vg_name_new, LCK_VG_WRITE)) { + rc = vg_lock_newname(cmd, vg_name_new); + + if (rc == FAILED_LOCKING) { unlock_and_release_vg(cmd, vg, vg_name_old); log_error("Can't get lock for %s", vg_name_new); return 0; } - consistent = 0; - if ((vg_new = vg_read_internal(cmd, vg_name_new, NULL, &consistent))) { + if (rc == FAILED_EXIST) { log_error("New volume group \"%s\" already exists", vg_name_new); - goto error; + unlock_and_release_vg(cmd, vg, vg_name_old); + return 0; } if (!archive(vg)) @@ -151,7 +154,7 @@ static int vg_rename_path(struct cmd_context *cmd, const char *old_vg_path, backup(vg); backup_remove(cmd, vg_name_old); - unlock_and_release_vg(cmd, vg_new, vg_name_new); + unlock_vg(cmd, vg_name_new); unlock_and_release_vg(cmd, vg, vg_name_old); log_print("Volume group \"%s\" successfully renamed to \"%s\"", @@ -164,7 +167,7 @@ static int vg_rename_path(struct cmd_context *cmd, const char *old_vg_path, return 1; error: - unlock_and_release_vg(cmd, vg_new, vg_name_new); + unlock_vg(cmd, vg_name_new); unlock_and_release_vg(cmd, vg, vg_name_old); return 0; } |