dm mpath: fix bio-based multipath queue_if_no_path handling
authorMike Snitzer <snitzer@redhat.com>
Fri, 8 Dec 2017 03:42:27 +0000 (22:42 -0500)
committerMike Snitzer <snitzer@redhat.com>
Fri, 8 Dec 2017 15:49:40 +0000 (10:49 -0500)
commitc1fd0abee0d52eb7e2871194b6c79d54792f515f
tree682306b0ffb307ae6dbc465459ca3db400b1aea3
parent7e6358d244e4706fe612a77b9c36519a33600ac0
dm mpath: fix bio-based multipath queue_if_no_path handling

Commit ca5beb76 ("dm mpath: micro-optimize the hot path relative to
MPATHF_QUEUE_IF_NO_PATH") caused bio-based DM-multipath to fail mptest's
"test_02_sdev_delete".

Restoring the logic that existed prior to commit ca5beb76 fixes this
bio-based DM-multipath regression.  Also verified all mptest tests pass
with request-based DM-multipath.

This commit effectively reverts commit ca5beb76 -- but it does so
without reintroducing the need to take the m->lock spinlock in
must_push_back_{rq,bio}.

Fixes: ca5beb76 ("dm mpath: micro-optimize the hot path relative to MPATHF_QUEUE_IF_NO_PATH")
Cc: stable@vger.kernel.org # 4.12+
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
drivers/md/dm-mpath.c