Message ID | tencent_FE02DEB8FF48DD9EE156F288BCE172E25709@qq.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Delegated to: | christophe varoqui |
Headers | show |
Series | [v2] multipath: display the correct configuration when dumpping config | expand |
On Mon, Jun 24, 2024 at 09:45:27AM +0800, 303146950@qq.com wrote: > From: Kou Wenqi <kouwenqi@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 <bmarzins@redhat.com> > Signed-off-by: Kou Wenqi <kouwenqi@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 >
On Mon, 2024-06-24 at 09:45 +0800, 303146950@qq.com wrote: > From: Kou Wenqi <kouwenqi@kylinos.cn> > > "multipath -t" and "multipath -T" might show the wrong > multipathd configuration items "retrigger_tries" and > "force_sync". Make sure they don't. > > Signed-off-by: Kou Wenqi <kouwenqi@kylinos.cn> > --- > multipath/main.c | 8 ++++++++ > 1 file changed, 8 insertions(+) Thanks for the patch! I'd prefer the following, if you agree. diff --git a/multipath/main.c b/multipath/main.c index 4b19d2e..28e3a05 100644 --- a/multipath/main.c +++ b/multipath/main.c @@ -853,8 +853,6 @@ main (int argc, char *argv[]) if (atexit(uninit_config)) condlog(1, "failed to register cleanup handler for config: %m"); conf = get_multipath_config(); - conf->retrigger_tries = 0; - conf->force_sync = 1; if (atexit(cleanup_vecs)) condlog(1, "failed to register cleanup handler for vecs: %m"); if (atexit(cleanup_bindings)) @@ -1001,6 +999,11 @@ main (int argc, char *argv[]) libmp_udev_set_sync_support(1); + if (cmd != CMD_DUMP_CONFIG) { + conf->retrigger_tries = 0; + conf->force_sync = 1; + } + if ((cmd == CMD_LIST_SHORT || cmd == CMD_LIST_LONG) && enable_foreign) conf->enable_foreign = strdup("");
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]);