scsi: scsi_debug: Use scsi_host_busy() in delay_store() and ndelay_store()
authorJohn Garry <john.g.garry@oracle.com>
Mon, 27 Mar 2023 07:43:08 +0000 (07:43 +0000)
committerMartin K. Petersen <martin.petersen@oracle.com>
Mon, 3 Apr 2023 02:09:22 +0000 (22:09 -0400)
commit12f3eef016ea7a72c6e0d0fe6f66882086d9c4a9
tree3d5253b02f678f1ba8e03756a17ddfee3a36049c
parent9c559c9b4748fed11687694e65e5d6d1eb2919cd
scsi: scsi_debug: Use scsi_host_busy() in delay_store() and ndelay_store()

The functions to update ndelay and delay value first check whether we have
any in-flight IO for any host. It does this by checking if any tag is used
in the global submit queues.

We can achieve the same by setting the host as blocked and then ensuring
that we have no in-flight commands with scsi_host_busy().

Note that scsi_host_busy() checks SCMD_STATE_INFLIGHT flag, which is only
set per command after we ensure that the host is not blocked, i.e. we see
more commands active after the check for scsi_host_busy() returns 0.

Signed-off-by: John Garry <john.g.garry@oracle.com>
Link: https://lore.kernel.org/r/20230327074310.1862889-10-john.g.garry@oracle.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/scsi_debug.c