Skip to content

Commit 6500d20

Browse files
johnpgarrymartinkpetersen
authored andcommitted
scsi: scsi_debug: Fix check for sdev queue full
There is a report that the blktests scsi/004 test for "TASK SET FULL" (TSF) now fails. The condition upon we should issue this TSF is when the sdev queue is full. The check for a full queue has an off-by-1 error. Previously we would increment the number of requests in the queue after testing if the queue would be full, i.e. test if one less than full. Since we now use scsi_device_busy() to count the number of requests in the queue, this would already account for the current request, so fix the test for queue full accordingly. Fixes: 151f0ec ("scsi: scsi_debug: Drop sdebug_dev_info.num_in_q") Reported-by: kernel test robot <oliver.sang@intel.com> Link: https://lore.kernel.org/oe-lkp/202303201334.18b30edc-oliver.sang@intel.com Signed-off-by: John Garry <john.g.garry@oracle.com> Link: https://lore.kernel.org/r/20230327074310.1862889-2-john.g.garry@oracle.com Acked-by: Douglas Gilbert <dgilbert@interlog.com> Tested-by: Yi Zhang <yi.zhang@redhat.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
1 parent 548ebb3 commit 6500d20

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

drivers/scsi/scsi_debug.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5580,7 +5580,7 @@ static int schedule_resp(struct scsi_cmnd *cmnd, struct sdebug_dev_info *devip,
55805580
int num_in_q = scsi_device_busy(sdp);
55815581
int qdepth = cmnd->device->queue_depth;
55825582

5583-
if ((num_in_q == (qdepth - 1)) &&
5583+
if ((num_in_q == qdepth) &&
55845584
(atomic_inc_return(&sdebug_a_tsf) >=
55855585
abs(sdebug_every_nth))) {
55865586
atomic_set(&sdebug_a_tsf, 0);

0 commit comments

Comments
 (0)