Skip to contentSkip to conversation

zfcp fixes for 2.6.28-rc6: missing patch

PATCH New Christof Schmitt 1 participant 2 messages Nov 27, 2008

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

cover zfcp fixes for 2.6.28-rc6: missing patch

James,

this fix should be part of yesterday's patch series for 2.6.28-rc6, but it fell through some holes. It applies cleanly on top of the patch series, please also include this fix.

thanks,

Christof

#1 lore raw

PATCH 1/1 zfcp: prevent double decrement on host_busy while being busy

From: Swen Schillig <[email protected]>

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.

---

 drivers/s390/scsi/zfcp_scsi.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/s390/scsi/zfcp_scsi.c +1 -1
@@ -88,7 +88,7 @@ static int zfcp_scsi_queuecommand(struct
 	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;