summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/args.h4
-rw-r--r--tools/lvmcmdline.c29
-rw-r--r--tools/tools.h3
3 files changed, 14 insertions, 22 deletions
diff --git a/tools/args.h b/tools/args.h
index ebce2520..a23c46cb 100644
--- a/tools/args.h
+++ b/tools/args.h
@@ -23,8 +23,8 @@ arg(physicalvolumesize_ARG, '\0', "setphysicalvolumesize", size_mb_arg, 0)
arg(ignorelockingfailure_ARG, '\0', "ignorelockingfailure", NULL, 0)
arg(nolocking_ARG, '\0', "nolocking", NULL, 0)
arg(pvmetadatacopies_ARG, '\0', "pvmetadatacopies", int_arg, 0)
-arg(vgmetadatacopies_ARG, '\0', "vgmetadatacopies", vgmetadatacopies_arg, 0)
-arg(metadatacopies_ARG, '\0', "metadatacopies", int_arg, 0)
+arg(vgmetadatacopies_ARG, '\0', "vgmetadatacopies", metadatacopies_arg, 0)
+arg(metadatacopies_ARG, '\0', "metadatacopies", metadatacopies_arg, 0)
arg(metadatasize_ARG, '\0', "metadatasize", size_mb_arg, 0)
arg(metadataignore_ARG, '\0', "metadataignore", yes_no_arg, 0)
arg(restorefile_ARG, '\0', "restorefile", string_arg, 0)
diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c
index 9cc65efb..8ff74ac0 100644
--- a/tools/lvmcmdline.c
+++ b/tools/lvmcmdline.c
@@ -476,29 +476,22 @@ int readahead_arg(struct cmd_context *cmd __attribute((unused)), struct arg *a)
/*
* Non-zero, positive integer, "all", or "unmanaged"
*/
-int vgmetadatacopies_arg(struct cmd_context *cmd __attribute((unused)),
+int metadatacopies_arg(struct cmd_context *cmd __attribute((unused)),
struct arg *a)
{
- if (!strcasecmp(a->value, "all")) {
- a->ui_value = VGMETADATACOPIES_ALL;
- return 1;
- }
+ if (!strncmp(cmd->command->name, "vg", 2)) {
+ if (!strcasecmp(a->value, "all")) {
+ a->ui_value = VGMETADATACOPIES_ALL;
+ return 1;
+ }
- if (!strcasecmp(a->value, "unmanaged")) {
- a->ui_value = VGMETADATACOPIES_UNMANAGED;
- return 1;
+ if (!strcasecmp(a->value, "unmanaged")) {
+ a->ui_value = VGMETADATACOPIES_UNMANAGED;
+ return 1;
+ }
}
- if (!_size_arg(cmd, a, 1))
- return 0;
-
- if (a->sign == SIGN_MINUS)
- return 0;
-
- if (!a->ui_value)
- return 0;
-
- return 1;
+ return int_arg(cmd, a);
}
static void __alloc(int size)
diff --git a/tools/tools.h b/tools/tools.h
index a09fa8e8..2e06fc20 100644
--- a/tools/tools.h
+++ b/tools/tools.h
@@ -152,8 +152,7 @@ int units_arg(struct cmd_context *cmd, struct arg *a);
int segtype_arg(struct cmd_context *cmd, struct arg *a);
int alloc_arg(struct cmd_context *cmd, struct arg *a);
int readahead_arg(struct cmd_context *cmd, struct arg *a);
-int vgmetadatacopies_arg(struct cmd_context *cmd __attribute((unused)),
- struct arg *a);
+int metadatacopies_arg(struct cmd_context *cmd __attribute((unused)), struct arg *a);
/* we use the enums to access the switches */
unsigned arg_count(const struct cmd_context *cmd, int a);