瀏覽代碼

[SCSI] libiscsi: Use SCSI_MLQUEUE_TARGET_BUSY

For the conditions below we do not want the queuecommand
function to call us right back, so return SCSI_MLQUEUE_TARGET_BUSY.

Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Mike Christie 16 年之前
父節點
當前提交
d6d13ee19d
共有 1 個文件被更改,包括 3 次插入5 次删除
  1. 3 5
      drivers/scsi/libiscsi.c

+ 3 - 5
drivers/scsi/libiscsi.c

@@ -1194,12 +1194,10 @@ int iscsi_queuecommand(struct scsi_cmnd *sc, void (*done)(struct scsi_cmnd *))
 		switch (session->state) {
 		switch (session->state) {
 		case ISCSI_STATE_IN_RECOVERY:
 		case ISCSI_STATE_IN_RECOVERY:
 			reason = FAILURE_SESSION_IN_RECOVERY;
 			reason = FAILURE_SESSION_IN_RECOVERY;
-			sc->result = DID_IMM_RETRY << 16;
-			break;
+			goto reject;
 		case ISCSI_STATE_LOGGING_OUT:
 		case ISCSI_STATE_LOGGING_OUT:
 			reason = FAILURE_SESSION_LOGGING_OUT;
 			reason = FAILURE_SESSION_LOGGING_OUT;
-			sc->result = DID_IMM_RETRY << 16;
-			break;
+			goto reject;
 		case ISCSI_STATE_RECOVERY_FAILED:
 		case ISCSI_STATE_RECOVERY_FAILED:
 			reason = FAILURE_SESSION_RECOVERY_TIMEOUT;
 			reason = FAILURE_SESSION_RECOVERY_TIMEOUT;
 			sc->result = DID_NO_CONNECT << 16;
 			sc->result = DID_NO_CONNECT << 16;
@@ -1267,7 +1265,7 @@ reject:
 	spin_unlock(&session->lock);
 	spin_unlock(&session->lock);
 	debug_scsi("cmd 0x%x rejected (%d)\n", sc->cmnd[0], reason);
 	debug_scsi("cmd 0x%x rejected (%d)\n", sc->cmnd[0], reason);
 	spin_lock(host->host_lock);
 	spin_lock(host->host_lock);
-	return SCSI_MLQUEUE_HOST_BUSY;
+	return SCSI_MLQUEUE_TARGET_BUSY;
 
 
 fault:
 fault:
 	spin_unlock(&session->lock);
 	spin_unlock(&session->lock);