On Mon, Jun 24, 2024 at 09:45:27AM +0800, 303146...@qq.com wrote:
> From: Kou Wenqi <kouwe...@kylinos.cn>
>
> "multipath -t" and "multipath -T" might show the wrong
> multipathd configuration items "retrigger_tries" and
> "force_sync". Make sure they don't.
>
Reviewed-by: Benjamin Marzinski <bmarz...@redhat.com>
> Signed-off-by: Kou Wenqi <kouwe...@kylinos.cn>
> ---
> multipath/main.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/multipath/main.c b/multipath/main.c
> index ce702e7f..f4abdad0 100644
> --- a/multipath/main.c
> +++ b/multipath/main.c
> @@ -842,6 +842,8 @@ main (int argc, char *argv[])
> char *dev = NULL;
> struct config *conf;
> bool enable_foreign = false;
> + int retrigger_tries_ori;
> + int force_sync_ori;
>
> libmultipath_init();
> if (atexit(dm_lib_exit) || atexit(libmultipath_exit))
> @@ -852,7 +854,9 @@ main (int argc, char *argv[])
> if (atexit(uninit_config))
> condlog(1, "failed to register cleanup handler for config: %m");
> conf = get_multipath_config();
> + retrigger_tries_ori = conf->retrigger_tries;
> conf->retrigger_tries = 0;
> + force_sync_ori = conf->force_sync;
> conf->force_sync = 1;
> if (atexit(cleanup_vecs))
> condlog(1, "failed to register cleanup handler for vecs: %m");
> @@ -924,10 +928,14 @@ main (int argc, char *argv[])
> conf->find_multipaths = FIND_MULTIPATHS_GREEDY;
> break;
> case 't':
> + conf->retrigger_tries = retrigger_tries_ori;
> + conf->force_sync = force_sync_ori;
> r = dump_config(conf, NULL, NULL) ? RTVL_FAIL : RTVL_OK;
> goto out;
> case 'T':
> cmd = CMD_DUMP_CONFIG;
> + conf->retrigger_tries = retrigger_tries_ori;
> + conf->force_sync = force_sync_ori;
> break;
> case 'h':
> usage(argv[0]);
> --
> 2.27.0
>