summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Teigland <teigland@redhat.com>2015-05-19 15:27:36 +0200
committerOndrej Kozina <okozina@redhat.com>2015-05-19 20:56:24 +0200
commitf400f9db19324a29aeff6ad92039db91adc1e8f9 (patch)
tree1ed0fcf0f06af65d40230dc252a7ae7c32f89bf5
parent7a8ce8dbf73fc149c67b22e3b90f542f70944e93 (diff)
downloadlvm2-f400f9db19324a29aeff6ad92039db91adc1e8f9.tar.gz
pvmove.c: code cleanup
-rw-r--r--tools/pvmove.c29
1 files changed, 17 insertions, 12 deletions
diff --git a/tools/pvmove.c b/tools/pvmove.c
index d5b246f65..f4b9d6c39 100644
--- a/tools/pvmove.c
+++ b/tools/pvmove.c
@@ -585,10 +585,11 @@ static int _copy_id_components(struct cmd_context *cmd,
}
static int _set_up_pvmove(struct cmd_context *cmd, const char *pv_name,
- int argc, char **argv, union lvid *lvid, char **vg_name,
+ int argc, char **argv, union lvid *lvid, char **vg_name_copy,
char **lv_mirr_name)
{
const char *lv_name = NULL;
+ const char *vg_name;
char *pv_name_arg;
struct volume_group *vg;
struct dm_list *source_pvl;
@@ -611,9 +612,10 @@ static int _set_up_pvmove(struct cmd_context *cmd, const char *pv_name,
return EINVALID_CMD_LINE;
}
+ vg_name = pv_vg_name(pv);
+
if (arg_count(cmd, name_ARG)) {
- if (!(lv_name = _extract_lvname(cmd, pv_vg_name(pv),
- arg_value(cmd, name_ARG)))) {
+ if (!(lv_name = _extract_lvname(cmd, vg_name, arg_value(cmd, name_ARG)))) {
stack;
free_pv_fid(pv);
return EINVALID_CMD_LINE;
@@ -627,9 +629,9 @@ static int _set_up_pvmove(struct cmd_context *cmd, const char *pv_name,
}
/* Read VG */
- log_verbose("Finding volume group \"%s\"", pv_vg_name(pv));
+ log_verbose("Finding volume group \"%s\"", vg_name);
- vg = vg_read(cmd, pv_vg_name(pv), NULL, READ_FOR_UPDATE);
+ vg = vg_read(cmd, vg_name, NULL, READ_FOR_UPDATE);
if (vg_read_error(vg)) {
release_vg(vg);
return_ECMD_FAILED;
@@ -686,7 +688,7 @@ static int _set_up_pvmove(struct cmd_context *cmd, const char *pv_name,
/* init_pvmove(1); */
/* vg->status |= PVMOVE; */
- if (!_copy_id_components(cmd, lv_mirr, vg_name, lv_mirr_name, lvid))
+ if (!_copy_id_components(cmd, lv_mirr, vg_name_copy, lv_mirr_name, lvid))
goto out;
if (flags & PVMOVE_FIRST_TIME)
@@ -697,15 +699,16 @@ static int _set_up_pvmove(struct cmd_context *cmd, const char *pv_name,
r = ECMD_PROCESSED;
out:
free_pv_fid(pv);
- unlock_and_release_vg(cmd, vg, pv_vg_name(pv));
+ unlock_and_release_vg(cmd, vg, vg_name);
return r;
}
static int _read_poll_id_from_pvname(struct cmd_context *cmd, const char *pv_name,
- union lvid *lvid, char **vg_name, char **lv_name,
- unsigned *in_progress)
+ union lvid *lvid, char **vg_name_copy,
+ char **lv_name_copy, unsigned *in_progress)
{
int ret = 0;
+ const char *vg_name;
struct logical_volume *lv;
struct physical_volume *pv;
struct volume_group *vg;
@@ -718,8 +721,10 @@ static int _read_poll_id_from_pvname(struct cmd_context *cmd, const char *pv_nam
if (!(pv = find_pv_by_name(cmd, pv_name, 0, 0)))
return_0;
+ vg_name = pv_vg_name(pv);
+
/* need read-only access */
- vg = vg_read(cmd, pv_vg_name(pv), NULL, 0);
+ vg = vg_read(cmd, vg_name, NULL, 0);
if (vg_read_error(vg)) {
log_error("ABORTING: Can't read VG for %s.", pv_name);
release_vg(vg);
@@ -732,12 +737,12 @@ static int _read_poll_id_from_pvname(struct cmd_context *cmd, const char *pv_nam
pv_name);
ret = 1;
*in_progress = 0;
- } else if (_copy_id_components(cmd, lv, vg_name, lv_name, lvid)) {
+ } else if (_copy_id_components(cmd, lv, vg_name_copy, lv_name_copy, lvid)) {
ret = 1;
*in_progress = 1;
}
- unlock_and_release_vg(cmd, vg, pv_vg_name(pv));
+ unlock_and_release_vg(cmd, vg, vg_name);
free_pv_fid(pv);
return ret;
}