All of lore.kernel.org
 help / color / mirror / Atom feed
* [dm-devel] [PATCH v2] multipathd: fix missing persistent reseravtion for active path
@ 2021-09-13  2:43 lixiaokeng
  2021-09-13  7:01 ` Martin Wilck
  2021-09-15 11:23 ` Martin Wilck
  0 siblings, 2 replies; 6+ messages in thread
From: lixiaokeng @ 2021-09-13  2:43 UTC (permalink / raw)
  To: Christophe Varoqui, Martin Wilck, Benjamin Marzinski,
	dm-devel mailing list
  Cc: linfeilong, liuzhiqiang (I)

There are two paths(sucu as sda and adb) for one LUN. The two
paths log in, but before the two uevents have been processed
(for example there are many uevent), users use multipathd add
path /dev/sda to cause mpatha and use mpathpersist -o -I to
register prkey for mpatha. The add map uevent is after add path
uevent, the the uevent(add sdb) will delay and missing persistent
reseravtion check.

Here, we add persistent reseravtion check in update_map() which
is called ev_add_map().

Signed-off-by: Lixiaokeng <lixiaokeng@huawei.com>
---
 multipathd/main.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/multipathd/main.c b/multipathd/main.c
index 3aff241d..1defeaf1 100644
--- a/multipathd/main.c
+++ b/multipathd/main.c
@@ -490,6 +490,8 @@ update_map (struct multipath *mpp, struct vectors *vecs, int new_map)
 {
 	int retries = 3;
 	char *params __attribute__((cleanup(cleanup_charp))) = NULL;
+	struct path *pp;
+	int i;

 retry:
 	condlog(4, "%s: updating new map", mpp->alias);
@@ -502,6 +504,15 @@ retry:
 	verify_paths(mpp);
 	mpp->action = ACT_RELOAD;

+	if (mpp->prflag) {
+		vector_foreach_slot(mpp->paths, pp, i) {
+			if ((pp->state == PATH_UP)  || (pp->state == PATH_GHOST)) {
+				/* persistent reseravtion check*/
+				mpath_pr_event_handle(pp);
+			}
+		}
+	}
+
 	if (setup_map(mpp, &params, vecs)) {
 		condlog(0, "%s: failed to setup new map in update", mpp->alias);
 		retries = -1;
-- 

--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-09-15 11:29 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-13  2:43 [dm-devel] [PATCH v2] multipathd: fix missing persistent reseravtion for active path lixiaokeng
2021-09-13  7:01 ` Martin Wilck
2021-09-13 15:32   ` Benjamin Marzinski
2021-09-13 16:32     ` Martin Wilck
2021-09-14  7:56       ` lixiaokeng
2021-09-15 11:23 ` Martin Wilck

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.