]> sourceware.org Git - lvm2.git/commitdiff
lvconvert: use cmd_context variable
authorZdenek Kabelac <zkabelac@redhat.com>
Sun, 28 Apr 2024 16:01:33 +0000 (18:01 +0200)
committerZdenek Kabelac <zkabelac@redhat.com>
Sun, 28 Apr 2024 22:13:43 +0000 (00:13 +0200)
Do not modify flags field from 'strcut command_name' and
instead control this via cmd_context  get_vgname_from_options.

Flag GET_VGNAME_FROM_OPTIONS is currently used only by lvconvert.

lib/commands/toolcontext.h
tools/lvconvert.c
tools/lvmcmdline.c
tools/toollib.c

index 07a9e889cddd8dea0bec439840c66f0ad39816be..cfe1de1aadd7b3ede027e8aaa4d169c555670eb2 100644 (file)
@@ -216,6 +216,7 @@ struct cmd_context {
        unsigned device_ids_check_hostname:1;
        unsigned device_ids_refresh_trigger:1;
        unsigned device_ids_invalid:1;
+       unsigned get_vgname_from_options:1;     /* used by lvconvert */
 
        /*
         * Devices and filtering.
index b848a895b524c8bcedd14923d9ec6bc72e97749e..4d919ae541a85f1b02bd45a1dd8b59352f6414cb 100644 (file)
@@ -5449,7 +5449,7 @@ static int _lvconvert_merge_mirror_images_single(struct cmd_context *cmd,
 int lvconvert_merge_mirror_images_cmd(struct cmd_context *cmd, int argc, char **argv)
 {
        /* arg can be a VG name, which is the standard option usage */
-       cmd->cname->flags &= ~GET_VGNAME_FROM_OPTIONS;
+       cmd->get_vgname_from_options = 0;
 
        return process_each_lv(cmd, cmd->position_argc, cmd->position_argv, NULL, NULL, READ_FOR_UPDATE,
                               NULL, &_lvconvert_visible_check, &_lvconvert_merge_mirror_images_single);
@@ -5489,7 +5489,7 @@ int lvconvert_merge_cmd(struct cmd_context *cmd, int argc, char **argv)
 
        handle->custom_handle = &lr;
 
-       cmd->cname->flags &= ~GET_VGNAME_FROM_OPTIONS;
+       cmd->get_vgname_from_options = 0;
 
        ret = process_each_lv(cmd, cmd->position_argc, cmd->position_argv, NULL, NULL, READ_FOR_UPDATE,
                              handle, NULL, &_lvconvert_merge_generic_single);
@@ -6399,7 +6399,7 @@ int lvconvert_to_writecache_cmd(struct cmd_context *cmd, int argc, char **argv)
 
        handle->custom_handle = &lr;
 
-       cmd->cname->flags &= ~GET_VGNAME_FROM_OPTIONS;
+       cmd->get_vgname_from_options = 0;
 
        ret = process_each_lv(cmd, cmd->position_argc, cmd->position_argv, NULL, NULL, READ_FOR_UPDATE, handle, NULL,
                              &lvconvert_writecache_attach_single);
@@ -6422,7 +6422,7 @@ int lvconvert_to_cache_with_cachevol_cmd(struct cmd_context *cmd, int argc, char
 
        handle->custom_handle = &lr;
 
-       cmd->cname->flags &= ~GET_VGNAME_FROM_OPTIONS;
+       cmd->get_vgname_from_options = 0;
 
        ret = process_each_lv(cmd, cmd->position_argc, cmd->position_argv, NULL, NULL, READ_FOR_UPDATE, handle, NULL,
                              &lvconvert_cachevol_attach_single);
@@ -6528,7 +6528,7 @@ int lvconvert_integrity_cmd(struct cmd_context *cmd, int argc, char **argv)
        /* Want to be able to remove integrity from partial LV */
        cmd->handles_missing_pvs = 1;
 
-       cmd->cname->flags &= ~GET_VGNAME_FROM_OPTIONS;
+       cmd->get_vgname_from_options = 0;
 
        ret = process_each_lv(cmd, cmd->position_argc, cmd->position_argv, NULL, NULL, READ_FOR_UPDATE, handle, NULL,
                              &_lvconvert_integrity_single);
index 4520b893bbc5aaf488d3bdb30add4124f9c2b409..6ae82032d5971e83d8bb53f1b7bbdf858d38a4c1 100644 (file)
@@ -3161,6 +3161,8 @@ int lvm_run_command(struct cmd_context *cmd, int argc, char **argv)
        if (!(cmd->cname = find_command_name(cmd->name)))
                return ENO_SUCH_CMD;
 
+       cmd->get_vgname_from_options = (cmd->cname->flags & GET_VGNAME_FROM_OPTIONS) ? 1 : 0;
+
        if (!_process_command_line(cmd, &argc, &argv)) {
                log_error("Error during parsing of command line.");
                return EINVALID_CMD_LINE;
index 5fb210a25e57b06186b0cb5e022607e82ceca39b..31867f054a3fb815c6121cd0575e0b980c4e9a56 100644 (file)
@@ -4014,7 +4014,7 @@ int process_each_lv(struct cmd_context *cmd,
        /*
         * Find any LVs, VGs or tags explicitly provided on the command line.
         */
-       if (cmd->cname->flags & GET_VGNAME_FROM_OPTIONS)
+       if (cmd->get_vgname_from_options)
                ret = _get_arg_lvnames_using_options(cmd, argc, argv, &arg_vgnames, &arg_lvnames, &arg_tags);
        else
                ret = _get_arg_lvnames(cmd, argc, argv, one_vgname, one_lvname, &arg_vgnames, &arg_lvnames, &arg_tags);
This page took 0.05005 seconds and 5 git commands to generate.