Commit 218b1699 authored by Benjamin Marzinski's avatar Benjamin Marzinski Committed by Mikulas Patocka
Browse files

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: default avatarBenjamin Marzinski <bmarzins@redhat.com>
Cc: stable@vger.kernel.org
parent 4550a71b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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);