@@ -1104,6 +1104,18 @@ void iscsit_handle_dataout_timeout(struct timer_list *t)
11041104
11051105 iscsit_inc_conn_usage_count (conn );
11061106
1107+ /*
1108+ * If the command was aborted, for instance following a LUN RESET,
1109+ * a dataout timeout might be normal.
1110+ */
1111+ if (target_cmd_interrupted (& cmd -> se_cmd )) {
1112+ pr_debug ("DataOut timeout on interrupted cmd with"
1113+ " ITT[0x%08llx]\n" , cmd -> se_cmd .tag );
1114+ cmd -> dataout_timer_flags &= ~ISCSI_TF_RUNNING ;
1115+ iscsit_dec_conn_usage_count (conn );
1116+ return ;
1117+ }
1118+
11071119 spin_lock_bh (& cmd -> dataout_timeout_lock );
11081120 if (cmd -> dataout_timer_flags & ISCSI_TF_STOP ) {
11091121 spin_unlock_bh (& cmd -> dataout_timeout_lock );
@@ -1117,19 +1129,22 @@ void iscsit_handle_dataout_timeout(struct timer_list *t)
11171129 if (!sess -> sess_ops -> ErrorRecoveryLevel ) {
11181130 pr_err ("Unable to recover from DataOut timeout while"
11191131 " in ERL=0, closing iSCSI connection for I_T Nexus"
1120- " %s,i,0x%6phN,%s,t,0x%02x\n" ,
1132+ " %s,i,0x%6phN,%s,t,0x%02x, cmd ITT[0x%08llx] \n" ,
11211133 sess -> sess_ops -> InitiatorName , sess -> isid ,
1122- sess -> tpg -> tpg_tiqn -> tiqn , (u32 )sess -> tpg -> tpgt );
1134+ sess -> tpg -> tpg_tiqn -> tiqn , (u32 )sess -> tpg -> tpgt ,
1135+ cmd -> se_cmd .tag );
11231136 goto failure ;
11241137 }
11251138
11261139 if (++ cmd -> dataout_timeout_retries == na -> dataout_timeout_retries ) {
11271140 pr_err ("Command ITT: 0x%08x exceeded max retries"
11281141 " for DataOUT timeout %u, closing iSCSI connection for"
1129- " I_T Nexus %s,i,0x%6phN,%s,t,0x%02x\n" ,
1142+ " I_T Nexus %s,i,0x%6phN,%s,t,0x%02x,"
1143+ " cmd ITT[0x%08llx]\n" ,
11301144 cmd -> init_task_tag , na -> dataout_timeout_retries ,
11311145 sess -> sess_ops -> InitiatorName , sess -> isid ,
1132- sess -> tpg -> tpg_tiqn -> tiqn , (u32 )sess -> tpg -> tpgt );
1146+ sess -> tpg -> tpg_tiqn -> tiqn , (u32 )sess -> tpg -> tpgt ,
1147+ cmd -> se_cmd .tag );
11331148 goto failure ;
11341149 }
11351150
0 commit comments