The patch below does not apply to the 5.10-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <[email protected]>.

Thanks,
Sasha

------------------ original commit in Linus's tree ------------------

>From 218b16992a37ea97b9e09b7659a25a864fb9976f Mon Sep 17 00:00:00 2001
From: Benjamin Marzinski <[email protected]>
Date: Tue, 27 Jan 2026 19:12:24 -0500
Subject: [PATCH] dm mpath: make pg_init_delay_msecs settable

"pg_init_delay_msecs X" can be passed as a feature in the multipath
table and is used to set m->pg_init_delay_msecs in parse_features().
However, alloc_multipath_stage2(), which is called after
parse_features(), resets m->pg_init_delay_msecs to its default value.
Instead, set m->pg_init_delay_msecs in alloc_multipath(), which is
called before parse_features(), to avoid overwriting a value passed in
by the table.

Signed-off-by: Benjamin Marzinski <[email protected]>
Cc: [email protected]
---
 drivers/md/dm-mpath.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c
index 6f9d86f4b912c..de03f9b065842 100644
--- a/drivers/md/dm-mpath.c
+++ b/drivers/md/dm-mpath.c
@@ -225,6 +225,7 @@ static struct multipath *alloc_multipath(struct dm_target 
*ti)
                mutex_init(&m->work_mutex);
 
                m->queue_mode = DM_TYPE_NONE;
+               m->pg_init_delay_msecs = DM_PG_INIT_DELAY_DEFAULT;
 
                m->ti = ti;
                ti->private = m;
@@ -251,7 +252,6 @@ static int alloc_multipath_stage2(struct dm_target *ti, 
struct multipath *m)
        set_bit(MPATHF_QUEUE_IO, &m->flags);
        atomic_set(&m->pg_init_in_progress, 0);
        atomic_set(&m->pg_init_count, 0);
-       m->pg_init_delay_msecs = DM_PG_INIT_DELAY_DEFAULT;
        init_waitqueue_head(&m->pg_init_wait);
        init_waitqueue_head(&m->probe_wait);
 
-- 
2.51.0





Reply via email to