@@ -350,13 +350,15 @@ out:
return r;
}
-static int print_cmd_valid(const char *devpath, int k)
+static int print_cmd_valid(int k, const vector pathvec,
+ struct config *conf)
{
- if (k < 0 || k > 1)
+ static const int vals[] = { 1, 0 };
+
+ if (k < 0 || k >= sizeof(vals))
return 1;
- printf("%s is%s a valid multipath device path\n",
- devpath, k ? "" : " not");
+ printf("DM_MULTIPATH_DEVICE_PATH=\"%d\"\n", vals[k]);
return k == 1;
}
@@ -513,7 +515,7 @@ configure (struct config *conf, enum mpath_cmds cmd,
print_valid:
if (cmd == CMD_VALID_PATH)
- r = print_cmd_valid(devpath, r);
+ r = print_cmd_valid(r, pathvec, conf);
out:
if (refwwid)
@@ -850,7 +852,7 @@ main (int argc, char *argv[])
if (fd == -1) {
condlog(3, "%s: daemon is not running", dev);
if (!systemd_service_enabled(dev)) {
- r = print_cmd_valid(dev, 1);
+ r = print_cmd_valid(1, NULL, conf);
goto out;
}
} else
@@ -19,9 +19,9 @@ LABEL="test_dev"
ENV{MPATH_SBIN_PATH}="/sbin"
TEST!="$env{MPATH_SBIN_PATH}/multipath", ENV{MPATH_SBIN_PATH}="/usr/sbin"
-ENV{DM_MULTIPATH_DEVICE_PATH}!="1", \
- PROGRAM=="$env{MPATH_SBIN_PATH}/multipath -u %k", \
- ENV{DM_MULTIPATH_DEVICE_PATH}="1", ENV{ID_FS_TYPE}="mpath_member", \
+# multipath -u sets DM_MULTIPATH_DEVICE_PATH
+ENV{DM_MULTIPATH_DEVICE_PATH}!="1", IMPORT{program}="$env{MPATH_SBIN_PATH}/multipath -u %k"
+ENV{DM_MULTIPATH_DEVICE_PATH}=="1", ENV{ID_FS_TYPE}="mpath_member", \
ENV{SYSTEMD_READY}="0"
LABEL="end_mpath"
... instead of free format. This provides more flexibility for udev rule processing for the future. Adapt code in multipath.rules. The exit status remains as usual. This affects "multipath -c", too. The parameters "pathvec" and "conf" for print_cmd_valid are currently unused, but will be in follow-up patches. Signed-off-by: Martin Wilck <mwilck@suse.com> --- multipath/main.c | 14 ++++++++------ multipath/multipath.rules | 6 +++--- 2 files changed, 11 insertions(+), 9 deletions(-)