]> sourceware.org Git - lvm2.git/commitdiff
Fix --[vg]metadatacopies arg processing
authorAlasdair Kergon <agk@redhat.com>
Wed, 30 Jun 2010 20:21:03 +0000 (20:21 +0000)
committerAlasdair Kergon <agk@redhat.com>
Wed, 30 Jun 2010 20:21:03 +0000 (20:21 +0000)
tools/args.h
tools/lvmcmdline.c
tools/tools.h

index ebce2520e19dc49397f6be1b6faca73b53dfd525..a23c46cbbdb3c8e132237c15d59199b00455d168 100644 (file)
@@ -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)
index 9cc65efb563a25f4263394fdfd0128937c4c825f..8ff74ac0f673aff5828e055c99272c2cdc4836c7 100644 (file)
@@ -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)
index a09fa8e8e9d47824865fe2b9006996b731e42697..2e06fc201c4990ed803b0d182fd5bfb14a5920b1 100644 (file)
@@ -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);
This page took 0.040169 seconds and 5 git commands to generate.