From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Benjamin Marzinski Date: Thu, 2 Jul 2020 19:07:06 -0500 Subject: [PATCH] multipath: add option to skip multipathd delegation Add the -D option to allow users to skip delegating commands to multipathd. Reviewed-by: Martin Wilck Signed-off-by: Benjamin Marzinski --- libmultipath/config.h | 1 + multipath/main.c | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/libmultipath/config.h b/libmultipath/config.h index 55569360..92c61a0d 100644 --- a/libmultipath/config.h +++ b/libmultipath/config.h @@ -190,6 +190,7 @@ struct config { int ghost_delay; int find_multipaths_timeout; int marginal_pathgroups; + int skip_delegate; unsigned int version[3]; unsigned int sequence_nr; diff --git a/multipath/main.c b/multipath/main.c index 6a24e483..4c43314e 100644 --- a/multipath/main.c +++ b/multipath/main.c @@ -817,6 +817,9 @@ int delegate_to_multipathd(enum mpath_cmds cmd, *p = '\0'; n = sizeof(command); + if (conf->skip_delegate) + return NOT_DELEGATED; + if (cmd == CMD_CREATE && conf->force_reload == FORCE_RELOAD_YES) { p += snprintf(p, n, "reconfigure"); } @@ -890,7 +893,7 @@ main (int argc, char *argv[]) multipath_conf = conf; conf->retrigger_tries = 0; conf->force_sync = 1; - while ((arg = getopt(argc, argv, ":adcChl::eFfM:v:p:b:BrR:itTquUwW")) != EOF ) { + while ((arg = getopt(argc, argv, ":adDcChl::eFfM:v:p:b:BrR:itTquUwW")) != EOF ) { switch(arg) { case 1: printf("optarg : %s\n",optarg); break; @@ -922,6 +925,9 @@ main (int argc, char *argv[]) if (cmd == CMD_CREATE) cmd = CMD_DRY_RUN; break; + case 'D': + conf->skip_delegate = 1; + break; case 'f': cmd = CMD_FLUSH_ONE; break; -- 2.17.2