Commit 3dc985bf authored by Wenchao Hao's avatar Wenchao Hao Committed by Martin K. Petersen
Browse files

scsi: core: Clean up scsi_dev_queue_ready()



This is just a cleanup for scsi_dev_queue_ready() to avoid a redundant goto
and if statement. No functional change.

Signed-off-by: default avatarWenchao Hao <haowenchao2@huawei.com>
Link: https://lore.kernel.org/r/20231018113746.1940197-2-haowenchao2@huawei.com


Reviewed-by: default avatarBart Van Assche <bvanassche@acm.org>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 0b1b4b04
Loading
Loading
Loading
Loading
+15 −17
Original line number Diff line number Diff line
@@ -1251,28 +1251,26 @@ static inline int scsi_dev_queue_ready(struct request_queue *q,
	int token;

	token = sbitmap_get(&sdev->budget_map);
	if (atomic_read(&sdev->device_blocked)) {
	if (token < 0)
			goto out;
		return -1;

		if (scsi_device_busy(sdev) > 1)
			goto out_dec;
	if (!atomic_read(&sdev->device_blocked))
		return token;

	/*
		 * unblock after device_blocked iterates to zero
	 * Only unblock if no other commands are pending and
	 * if device_blocked has decreased to zero
	 */
		if (atomic_dec_return(&sdev->device_blocked) > 0)
			goto out_dec;
	if (scsi_device_busy(sdev) > 1 ||
	    atomic_dec_return(&sdev->device_blocked) > 0) {
		sbitmap_put(&sdev->budget_map, token);
		return -1;
	}

	SCSI_LOG_MLQUEUE(3, sdev_printk(KERN_INFO, sdev,
			 "unblocking device at zero depth\n"));
	}

	return token;
out_dec:
	if (token >= 0)
		sbitmap_put(&sdev->budget_map, token);
out:
	return -1;
}

/*