diff options
Diffstat (limited to 'meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch')
-rw-r--r-- | meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch b/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch deleted file mode 100644 index 025a3512e3..0000000000 --- a/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch +++ /dev/null @@ -1,138 +0,0 @@ -From 0d2c9afbd89d79fd700f9c99aa20e5f7c7382027 Mon Sep 17 00:00:00 2001 -From: Benjamin Marzinski <bmarzins@redhat.com> -Date: Mon, 24 Apr 2017 09:39:57 -0500 -Subject: [PATCH 07/14] RH: trigger change uevent on new device creation - -When multipath first sees a path device with user_friendly names -enabled, it can't know if the device should be multipathed. This means -that it will not claim the device in udev. If the device is eventually -multipathed, multipath should trigger a change uevent to update the udev -database to claim the device. - -This also reverts commit 64e27ec066a001012f44550f095c93443e91d845. - -Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> ---- - libmultipath/configure.c | 26 ++++++++++++++++++++++++-- - libmultipath/configure.h | 1 + - libmultipath/wwids.c | 4 ++-- - multipath/main.c | 2 +- - multipathd/main.c | 7 ++----- - 5 files changed, 30 insertions(+), 10 deletions(-) - -diff --git a/libmultipath/configure.c b/libmultipath/configure.c -index bd090d9..843dd09 100644 ---- a/libmultipath/configure.c -+++ b/libmultipath/configure.c -@@ -422,6 +422,28 @@ trigger_udev_change(const struct multipath *mpp) - udev_device_unref(udd); - } - -+void -+trigger_paths_udev_change(const struct multipath *mpp) -+{ -+ struct pathgroup * pgp; -+ struct path * pp; -+ int i, j; -+ -+ if (!mpp || !mpp->pg) -+ return; -+ -+ vector_foreach_slot (mpp->pg, pgp, i) { -+ if (!pgp->paths) -+ continue; -+ vector_foreach_slot(pgp->paths, pp, j) { -+ if (!pp->udev) -+ continue; -+ sysfs_attr_set_value(pp->udev, "uevent", "change", -+ strlen("change")); -+ } -+ } -+} -+ - static int - is_mpp_known_to_udev(const struct multipath *mpp) - { -@@ -802,8 +824,8 @@ int domap(struct multipath *mpp, char *params, int is_daemon) - * succeeded - */ - mpp->force_udev_reload = 0; -- if (mpp->action == ACT_CREATE) -- remember_wwid(mpp->wwid); -+ if (mpp->action == ACT_CREATE && remember_wwid(mpp->wwid) == 1) -+ trigger_paths_udev_change(mpp); - if (!is_daemon) { - /* multipath client mode */ - dm_switchgroup(mpp->alias, mpp->bestpg); -diff --git a/libmultipath/configure.h b/libmultipath/configure.h -index fd7f581..253e29b 100644 ---- a/libmultipath/configure.h -+++ b/libmultipath/configure.h -@@ -36,3 +36,4 @@ int get_refwwid (enum mpath_cmds cmd, char * dev, enum devtypes dev_type, - vector pathvec, char **wwid); - int reload_map(struct vectors *vecs, struct multipath *mpp, int refresh, int is_daemon); - int sysfs_get_host_adapter_name(struct path *pp, char *adapter_name); -+void trigger_paths_udev_change(const struct multipath *mpp); -diff --git a/libmultipath/wwids.c b/libmultipath/wwids.c -index 88bb72b..249c6c1 100644 ---- a/libmultipath/wwids.c -+++ b/libmultipath/wwids.c -@@ -319,7 +319,7 @@ remember_wwid(char *wwid) - condlog(3, "wrote wwid %s to wwids file", wwid); - else - condlog(4, "wwid %s already in wwids file", wwid); -- return 0; -+ return ret; - } - - int remember_cmdline_wwid(void) -@@ -353,7 +353,7 @@ int remember_cmdline_wwid(void) - next++; - } - if (strlen(ptr)) { -- if (remember_wwid(ptr) != 0) -+ if (remember_wwid(ptr) < 0) - ret = -1; - } - else { -diff --git a/multipath/main.c b/multipath/main.c -index 72585b0..2eda6a3 100644 ---- a/multipath/main.c -+++ b/multipath/main.c -@@ -336,7 +336,7 @@ configure (struct config *conf, enum mpath_cmds cmd, - } - if (cmd == CMD_ADD_WWID) { - r = remember_wwid(refwwid); -- if (r == 0) -+ if (r >= 0) - printf("wwid '%s' added\n", refwwid); - else - printf("failed adding '%s' to wwids file\n", -diff --git a/multipathd/main.c b/multipathd/main.c -index 81c76ca..874bcce 100644 ---- a/multipathd/main.c -+++ b/multipathd/main.c -@@ -2093,7 +2093,8 @@ configure (struct vectors * vecs, int start_waiters) - - sync_maps_state(mpvec); - vector_foreach_slot(mpvec, mpp, i){ -- remember_wwid(mpp->wwid); -+ if (remember_wwid(mpp->wwid) == 1) -+ trigger_paths_udev_change(mpp); - update_map_pr(mpp); - } - -@@ -2175,10 +2176,6 @@ reconfigure (struct vectors * vecs) - conf->verbosity = verbosity; - if (bindings_read_only) - conf->bindings_read_only = bindings_read_only; -- if (conf->find_multipaths) { -- condlog(2, "find_multipaths is set: -n is implied"); -- ignore_new_devs = 1; -- } - if (ignore_new_devs) - conf->ignore_new_devs = ignore_new_devs; - uxsock_timeout = conf->uxsock_timeout; --- -2.8.1 - |