target: Fix target_submit_tmr LUN lookup failures
authorNicholas Bellinger <nab@linux-iscsi.org>
Sat, 25 Feb 2012 09:30:55 +0000 (01:30 -0800)
committerNicholas Bellinger <nab@linux-iscsi.org>
Sat, 25 Feb 2012 22:37:51 +0000 (14:37 -0800)
This patch changes target_submit_tmr() LUN lookup failures to set response
status TMR_LUN_DOES_NOT_EXIST and invoke TFO->queue_tm_rsp(), instead of
sending CHECK_CONDITION status that can cause problems with Linux FCoE
clients.

Tested with tcm_fc ports and explict LUN_RESET lookup failures.

Cc: Andy Grover <agrover@redhat.com>
Cc: Kiran Patil <kiran.patil@intel.com>
Cc: Arun Easi <arun.easi@qlogic.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_transport.c

index b79c6a2824ee027459d261e31cb2b03e06bf10df..d44cbc2113e5268b8baf3de4cb24ce0ed938f3e2 100644 (file)
@@ -1733,8 +1733,8 @@ void target_submit_tmr(struct se_cmd *se_cmd, struct se_session *se_sess,
 
        ret = transport_lookup_tmr_lun(se_cmd, unpacked_lun);
        if (ret) {
-               transport_send_check_condition_and_sense(se_cmd,
-                       se_cmd->scsi_sense_reason, 0);
+               se_cmd->se_tmr_req->response = TMR_LUN_DOES_NOT_EXIST;
+               se_cmd->se_tfo->queue_tm_rsp(se_cmd);
                transport_generic_free_cmd(se_cmd, 0);
                return;
        }