[SCSI] zfcp: prevent double decrement on host_busy while being busy
The zfcp_scsi_queuecommand was not acting according to the standard when the respective unit was not available. In this case an -EBUSY was returned, which is not valid in itself, and in addition scsi_done was called. This combination is not allowed and was leading to a double finish of the request and therefor double decrement of the host_busy counter. Signed-off-by: Swen Schillig <swen@vnet.ibm.com> Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
parent
fca55b6fb5
commit
f7a65e92e4
|
@ -88,7 +88,7 @@ static int zfcp_scsi_queuecommand(struct scsi_cmnd *scpnt,
|
|||
ret = zfcp_fsf_send_fcp_command_task(adapter, unit, scpnt, 0,
|
||||
ZFCP_REQ_AUTO_CLEANUP);
|
||||
if (unlikely(ret == -EBUSY))
|
||||
zfcp_scsi_command_fail(scpnt, DID_NO_CONNECT);
|
||||
return SCSI_MLQUEUE_DEVICE_BUSY;
|
||||
else if (unlikely(ret < 0))
|
||||
return SCSI_MLQUEUE_HOST_BUSY;
|
||||
|
||||
|
|
Loading…
Reference in New Issue