scsi_transport_srp: Fix fast_io_fail_tmo=dev_loss_tmo=off behavior
commitcd53eb686d2418eda938aad3c9da42b7dfa9351f
authorBart Van Assche <bvanassche@acm.org>
Wed, 9 Jul 2014 13:56:43 +0000 (9 15:56 +0200)
committerRoland Dreier <roland@purestorage.com>
Fri, 1 Aug 2014 22:21:51 +0000 (1 15:21 -0700)
tree8b6ae868a168996350431b6d1e8cd648f7739ddd
parent64aa90f26c06e1cb2aacfb98a7d0eccfbd6c1a91
scsi_transport_srp: Fix fast_io_fail_tmo=dev_loss_tmo=off behavior

If scsi_remove_host() is called while an rport is in the blocked state
then scsi_remove_host() will only finish if the rport is unblocked
from inside a timer function. Make sure that an rport only enters the
blocked state if a timer will be started that will unblock it. This
avoids that unloading the ib_srp kernel module after having
disconnected the initiator from the target system results in a
deadlock if both the fast_io_fail_tmo and dev_loss_tmo parameters have
been set to "off".

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
Reviewed-by: David Dillow <dave@thedillows.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/scsi/scsi_transport_srp.c