From cfbb2afac5f64e95cd68039df64cc600bff0cbfb Mon Sep 17 00:00:00 2001 From: Dave Wysochanski Date: Tue, 7 Aug 2007 18:55:38 +0000 Subject: [PATCH] A few more cleanups for lvrename of mirrors checkin: * add struct lv_names for old/new names * replace lv->status & MIRROR checks with lv_is_visible() --- lib/metadata/lv_manip.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c index 843317908..eaedc7d6c 100644 --- a/lib/metadata/lv_manip.c +++ b/lib/metadata/lv_manip.c @@ -25,6 +25,11 @@ #include "segtype.h" #include "archiver.h" +struct lv_names { + const char *old; + const char *new; +}; + /* * PVs used by a segment of an LV */ @@ -1548,9 +1553,9 @@ static int _rename_sub_lv(struct cmd_context *cmd, static int _rename_cb(struct cmd_context *cmd, struct logical_volume *lv, void *data) { - char **names = (char **) data; + struct lv_names *lv_names = (struct lv_names *) data; - return _rename_sub_lv(cmd, lv, names[0], names[1]); + return _rename_sub_lv(cmd, lv, lv_names->old, lv_names->new); } /* @@ -1588,10 +1593,10 @@ int lv_rename(struct cmd_context *cmd, struct logical_volume *lv, const char *new_name) { struct volume_group *vg = lv->vg; - const char *names[2]; + struct lv_names lv_names; /* rename is not allowed on sub LVs */ - if ((lv->status & MIRROR_LOG) || (lv->status & MIRROR_IMAGE)) { + if (!lv_is_visible(lv)) { log_error("Cannot rename internal LV \"%s\".", lv->name); return 0; } @@ -1611,9 +1616,9 @@ int lv_rename(struct cmd_context *cmd, struct logical_volume *lv, return 0; /* rename sub LVs */ - names[0] = lv->name; - names[1] = new_name; - if (!_for_each_sub_lv(cmd, lv, _rename_cb, (void *) names)) + lv_names.old = lv->name; + lv_names.new = new_name; + if (!_for_each_sub_lv(cmd, lv, _rename_cb, (void *) &lv_names)) return 0; /* rename main LV */