@@ -1101,6 +1101,18 @@ void iscsit_handle_dataout_timeout(struct timer_list *t)
11011101
11021102 iscsit_inc_conn_usage_count (conn );
11031103
1104+ /*
1105+ * If the command was aborted, for instance following a LUN RESET,
1106+ * a dataout timeout might be normal.
1107+ */
1108+ if (target_cmd_interrupted (& cmd -> se_cmd )) {
1109+ pr_debug ("DataOut timeout on interrupted cmd with"
1110+ " ITT[0x%08llx]\n" , cmd -> se_cmd .tag );
1111+ cmd -> dataout_timer_flags &= ~ISCSI_TF_RUNNING ;
1112+ iscsit_dec_conn_usage_count (conn );
1113+ return ;
1114+ }
1115+
11041116 spin_lock_bh (& cmd -> dataout_timeout_lock );
11051117 if (cmd -> dataout_timer_flags & ISCSI_TF_STOP ) {
11061118 spin_unlock_bh (& cmd -> dataout_timeout_lock );
@@ -1114,19 +1126,22 @@ void iscsit_handle_dataout_timeout(struct timer_list *t)
11141126 if (!sess -> sess_ops -> ErrorRecoveryLevel ) {
11151127 pr_err ("Unable to recover from DataOut timeout while"
11161128 " in ERL=0, closing iSCSI connection for I_T Nexus"
1117- " %s,i,0x%6phN,%s,t,0x%02x\n" ,
1129+ " %s,i,0x%6phN,%s,t,0x%02x, cmd ITT[0x%08llx] \n" ,
11181130 sess -> sess_ops -> InitiatorName , sess -> isid ,
1119- sess -> tpg -> tpg_tiqn -> tiqn , (u32 )sess -> tpg -> tpgt );
1131+ sess -> tpg -> tpg_tiqn -> tiqn , (u32 )sess -> tpg -> tpgt ,
1132+ cmd -> se_cmd .tag );
11201133 goto failure ;
11211134 }
11221135
11231136 if (++ cmd -> dataout_timeout_retries == na -> dataout_timeout_retries ) {
11241137 pr_err ("Command ITT: 0x%08x exceeded max retries"
11251138 " for DataOUT timeout %u, closing iSCSI connection for"
1126- " I_T Nexus %s,i,0x%6phN,%s,t,0x%02x\n" ,
1139+ " I_T Nexus %s,i,0x%6phN,%s,t,0x%02x,"
1140+ " cmd ITT[0x%08llx]\n" ,
11271141 cmd -> init_task_tag , na -> dataout_timeout_retries ,
11281142 sess -> sess_ops -> InitiatorName , sess -> isid ,
1129- sess -> tpg -> tpg_tiqn -> tiqn , (u32 )sess -> tpg -> tpgt );
1143+ sess -> tpg -> tpg_tiqn -> tiqn , (u32 )sess -> tpg -> tpgt ,
1144+ cmd -> se_cmd .tag );
11301145 goto failure ;
11311146 }
11321147
0 commit comments