1165 cmn_err(CE_WARN, "iscsi connection(%u/%x) closing connection - "
1166 "target requested reason:0x%x",
1167 icp->conn_oid, irrhp->opcode, irrhp->reason);
1168 status = IDM_STATUS_PROTOCOL_ERROR;
1169 break;
1170 }
1171
1172 return (status);
1173 }
1174
1175
1176 /*
1177 * iscsi_rx_process_rejected_tsk_mgt -
1178 */
1179 /* ARGSUSED */
1180 static idm_status_t
1181 iscsi_rx_process_rejected_tsk_mgt(idm_conn_t *ic, iscsi_hdr_t *old_ihp)
1182 {
1183 iscsi_sess_t *isp = NULL;
1184 iscsi_cmd_t *icmdp = NULL;
1185 iscsi_conn_t *icp = NULL;
1186
1187 isp = icp->conn_sess;
1188 ASSERT(old_ihp != NULL);
1189 ASSERT(isp != NULL);
1190
1191 mutex_enter(&icp->conn_queue_active.mutex);
1192 mutex_enter(&isp->sess_cmdsn_mutex);
1193 if (!ISCSI_SUCCESS(iscsi_rx_process_itt_to_icmdp(
1194 isp, old_ihp, &icmdp))) {
1195 mutex_exit(&isp->sess_cmdsn_mutex);
1196 mutex_exit(&icp->conn_queue_active.mutex);
1197 return (IDM_STATUS_PROTOCOL_ERROR);
1198 }
1199 mutex_exit(&isp->sess_cmdsn_mutex);
1200
1201 switch (icmdp->cmd_type) {
1202 case ISCSI_CMD_TYPE_ABORT:
1203 case ISCSI_CMD_TYPE_RESET:
1204 iscsi_cmd_state_machine(icmdp, ISCSI_CMD_EVENT_E4,
1205 icp->conn_sess);
|
1165 cmn_err(CE_WARN, "iscsi connection(%u/%x) closing connection - "
1166 "target requested reason:0x%x",
1167 icp->conn_oid, irrhp->opcode, irrhp->reason);
1168 status = IDM_STATUS_PROTOCOL_ERROR;
1169 break;
1170 }
1171
1172 return (status);
1173 }
1174
1175
1176 /*
1177 * iscsi_rx_process_rejected_tsk_mgt -
1178 */
1179 /* ARGSUSED */
1180 static idm_status_t
1181 iscsi_rx_process_rejected_tsk_mgt(idm_conn_t *ic, iscsi_hdr_t *old_ihp)
1182 {
1183 iscsi_sess_t *isp = NULL;
1184 iscsi_cmd_t *icmdp = NULL;
1185 iscsi_conn_t *icp = ic->ic_handle;
1186
1187 isp = icp->conn_sess;
1188 ASSERT(old_ihp != NULL);
1189 ASSERT(isp != NULL);
1190
1191 mutex_enter(&icp->conn_queue_active.mutex);
1192 mutex_enter(&isp->sess_cmdsn_mutex);
1193 if (!ISCSI_SUCCESS(iscsi_rx_process_itt_to_icmdp(
1194 isp, old_ihp, &icmdp))) {
1195 mutex_exit(&isp->sess_cmdsn_mutex);
1196 mutex_exit(&icp->conn_queue_active.mutex);
1197 return (IDM_STATUS_PROTOCOL_ERROR);
1198 }
1199 mutex_exit(&isp->sess_cmdsn_mutex);
1200
1201 switch (icmdp->cmd_type) {
1202 case ISCSI_CMD_TYPE_ABORT:
1203 case ISCSI_CMD_TYPE_RESET:
1204 iscsi_cmd_state_machine(icmdp, ISCSI_CMD_EVENT_E4,
1205 icp->conn_sess);
|