Lines Matching refs:cmd

39 	struct iscsi_cmd *cmd,  in iscsit_tmr_abort_task()  argument
43 struct iscsi_conn *conn = cmd->conn; in iscsit_tmr_abort_task()
44 struct iscsi_tmr_req *tmr_req = cmd->tmr_req; in iscsit_tmr_abort_task()
45 struct se_tmr_req *se_tmr = cmd->se_cmd.se_tmr_req; in iscsit_tmr_abort_task()
114 struct iscsi_cmd *cmd, in iscsit_tmr_task_reassign() argument
118 struct iscsi_conn *conn = cmd->conn; in iscsit_tmr_task_reassign()
120 struct iscsi_tmr_req *tmr_req = cmd->tmr_req; in iscsit_tmr_task_reassign()
121 struct se_tmr_req *se_tmr = cmd->se_cmd.se_tmr_req; in iscsit_tmr_task_reassign()
186 struct iscsi_cmd *cmd, in iscsit_task_reassign_remove_cmd() argument
193 ret = iscsit_remove_cmd_from_connection_recovery(cmd, sess); in iscsit_task_reassign_remove_cmd()
206 struct iscsi_cmd *cmd = tmr_req->ref_cmd; in iscsit_task_reassign_complete_nop_out() local
209 if (!cmd->cr) { in iscsit_task_reassign_complete_nop_out()
211 " is NULL!\n", cmd->init_task_tag); in iscsit_task_reassign_complete_nop_out()
214 cr = cmd->cr; in iscsit_task_reassign_complete_nop_out()
221 cmd->stat_sn = cmd->exp_stat_sn = 0; in iscsit_task_reassign_complete_nop_out()
223 iscsit_task_reassign_remove_cmd(cmd, cr, conn->sess); in iscsit_task_reassign_complete_nop_out()
226 list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list); in iscsit_task_reassign_complete_nop_out()
229 cmd->i_state = ISTATE_SEND_NOPIN; in iscsit_task_reassign_complete_nop_out()
230 iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state); in iscsit_task_reassign_complete_nop_out()
235 struct iscsi_cmd *cmd, in iscsit_task_reassign_complete_write() argument
240 struct iscsi_conn *conn = cmd->conn; in iscsit_task_reassign_complete_write()
241 struct se_cmd *se_cmd = &cmd->se_cmd; in iscsit_task_reassign_complete_write()
247 cmd->cmd_flags &= ~ICF_GOT_DATACK_SNACK; in iscsit_task_reassign_complete_write()
248 cmd->acked_data_sn = 0; in iscsit_task_reassign_complete_write()
250 cmd->cmd_flags |= ICF_GOT_DATACK_SNACK; in iscsit_task_reassign_complete_write()
251 cmd->acked_data_sn = (tmr_req->exp_data_sn - 1); in iscsit_task_reassign_complete_write()
259 if (cmd->cmd_flags & ICF_GOT_LAST_DATAOUT) { in iscsit_task_reassign_complete_write()
260 if (!(cmd->se_cmd.transport_state & CMD_T_SENT)) { in iscsit_task_reassign_complete_write()
263 cmd->init_task_tag, cmd->se_cmd.t_state); in iscsit_task_reassign_complete_write()
268 cmd->i_state = ISTATE_SEND_STATUS; in iscsit_task_reassign_complete_write()
269 iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state); in iscsit_task_reassign_complete_write()
277 if (cmd->unsolicited_data) { in iscsit_task_reassign_complete_write()
278 cmd->unsolicited_data = 0; in iscsit_task_reassign_complete_write()
280 offset = cmd->next_burst_len = cmd->write_data_done; in iscsit_task_reassign_complete_write()
283 cmd->se_cmd.data_length) { in iscsit_task_reassign_complete_write()
285 length = (cmd->se_cmd.data_length - offset); in iscsit_task_reassign_complete_write()
289 spin_lock_bh(&cmd->r2t_lock); in iscsit_task_reassign_complete_write()
290 if (iscsit_add_r2t_to_list(cmd, offset, length, 0, 0) < 0) { in iscsit_task_reassign_complete_write()
291 spin_unlock_bh(&cmd->r2t_lock); in iscsit_task_reassign_complete_write()
294 cmd->outstanding_r2ts++; in iscsit_task_reassign_complete_write()
295 spin_unlock_bh(&cmd->r2t_lock); in iscsit_task_reassign_complete_write()
303 return conn->conn_transport->iscsit_get_dataout(conn, cmd, true); in iscsit_task_reassign_complete_write()
307 struct iscsi_cmd *cmd, in iscsit_task_reassign_complete_read() argument
310 struct iscsi_conn *conn = cmd->conn; in iscsit_task_reassign_complete_read()
312 struct se_cmd *se_cmd = &cmd->se_cmd; in iscsit_task_reassign_complete_read()
318 cmd->cmd_flags &= ~ICF_GOT_DATACK_SNACK; in iscsit_task_reassign_complete_read()
319 cmd->acked_data_sn = 0; in iscsit_task_reassign_complete_read()
321 cmd->cmd_flags |= ICF_GOT_DATACK_SNACK; in iscsit_task_reassign_complete_read()
322 cmd->acked_data_sn = (tmr_req->exp_data_sn - 1); in iscsit_task_reassign_complete_read()
325 if (!(cmd->se_cmd.transport_state & CMD_T_SENT)) { in iscsit_task_reassign_complete_read()
327 " transport\n", cmd->init_task_tag, in iscsit_task_reassign_complete_read()
328 cmd->se_cmd.t_state); in iscsit_task_reassign_complete_read()
335 " from transport\n", cmd->init_task_tag, in iscsit_task_reassign_complete_read()
336 cmd->se_cmd.t_state); in iscsit_task_reassign_complete_read()
352 iscsit_attach_datain_req(cmd, dr); in iscsit_task_reassign_complete_read()
354 cmd->i_state = ISTATE_SEND_DATAIN; in iscsit_task_reassign_complete_read()
355 iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state); in iscsit_task_reassign_complete_read()
360 struct iscsi_cmd *cmd, in iscsit_task_reassign_complete_none() argument
363 struct iscsi_conn *conn = cmd->conn; in iscsit_task_reassign_complete_none()
365 cmd->i_state = ISTATE_SEND_STATUS; in iscsit_task_reassign_complete_none()
366 iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state); in iscsit_task_reassign_complete_none()
374 struct iscsi_cmd *cmd = tmr_req->ref_cmd; in iscsit_task_reassign_complete_scsi_cmnd() local
377 if (!cmd->cr) { in iscsit_task_reassign_complete_scsi_cmnd()
379 " is NULL!\n", cmd->init_task_tag); in iscsit_task_reassign_complete_scsi_cmnd()
382 cr = cmd->cr; in iscsit_task_reassign_complete_scsi_cmnd()
389 cmd->stat_sn = cmd->exp_stat_sn = 0; in iscsit_task_reassign_complete_scsi_cmnd()
391 iscsit_task_reassign_remove_cmd(cmd, cr, conn->sess); in iscsit_task_reassign_complete_scsi_cmnd()
394 list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list); in iscsit_task_reassign_complete_scsi_cmnd()
397 if (cmd->se_cmd.se_cmd_flags & SCF_SENT_CHECK_CONDITION) { in iscsit_task_reassign_complete_scsi_cmnd()
398 cmd->i_state = ISTATE_SEND_STATUS; in iscsit_task_reassign_complete_scsi_cmnd()
399 iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state); in iscsit_task_reassign_complete_scsi_cmnd()
403 switch (cmd->data_direction) { in iscsit_task_reassign_complete_scsi_cmnd()
405 return iscsit_task_reassign_complete_write(cmd, tmr_req); in iscsit_task_reassign_complete_scsi_cmnd()
407 return iscsit_task_reassign_complete_read(cmd, tmr_req); in iscsit_task_reassign_complete_scsi_cmnd()
409 return iscsit_task_reassign_complete_none(cmd, tmr_req); in iscsit_task_reassign_complete_scsi_cmnd()
412 cmd->data_direction); in iscsit_task_reassign_complete_scsi_cmnd()
423 struct iscsi_cmd *cmd; in iscsit_task_reassign_complete() local
430 cmd = tmr_req->ref_cmd; in iscsit_task_reassign_complete()
432 cmd->conn = conn; in iscsit_task_reassign_complete()
434 switch (cmd->iscsi_opcode) { in iscsit_task_reassign_complete()
443 " command realligence\n", cmd->iscsi_opcode); in iscsit_task_reassign_complete()
451 " ITT: 0x%08x to CID: %hu.\n", cmd->iscsi_opcode, in iscsit_task_reassign_complete()
452 cmd->init_task_tag, conn->cid); in iscsit_task_reassign_complete()
462 int iscsit_tmr_post_handler(struct iscsi_cmd *cmd, struct iscsi_conn *conn) in iscsit_tmr_post_handler() argument
464 struct iscsi_tmr_req *tmr_req = cmd->tmr_req; in iscsit_tmr_post_handler()
465 struct se_tmr_req *se_tmr = cmd->se_cmd.se_tmr_req; in iscsit_tmr_post_handler()
486 struct iscsi_cmd *cmd, in iscsit_task_reassign_prepare_unsolicited_dataout() argument
494 cmd->data_sn = 0; in iscsit_task_reassign_prepare_unsolicited_dataout()
496 if (cmd->immediate_data) in iscsit_task_reassign_prepare_unsolicited_dataout()
497 cmd->r2t_offset += (cmd->first_burst_len - in iscsit_task_reassign_prepare_unsolicited_dataout()
498 cmd->seq_start_offset); in iscsit_task_reassign_prepare_unsolicited_dataout()
501 cmd->write_data_done -= (cmd->immediate_data) ? in iscsit_task_reassign_prepare_unsolicited_dataout()
502 (cmd->first_burst_len - in iscsit_task_reassign_prepare_unsolicited_dataout()
503 cmd->seq_start_offset) : in iscsit_task_reassign_prepare_unsolicited_dataout()
504 cmd->first_burst_len; in iscsit_task_reassign_prepare_unsolicited_dataout()
505 cmd->first_burst_len = 0; in iscsit_task_reassign_prepare_unsolicited_dataout()
509 for (i = 0; i < cmd->pdu_count; i++) { in iscsit_task_reassign_prepare_unsolicited_dataout()
510 pdu = &cmd->pdu_list[i]; in iscsit_task_reassign_prepare_unsolicited_dataout()
515 if ((pdu->offset >= cmd->seq_start_offset) && in iscsit_task_reassign_prepare_unsolicited_dataout()
517 cmd->seq_end_offset)) { in iscsit_task_reassign_prepare_unsolicited_dataout()
518 cmd->first_burst_len -= pdu->length; in iscsit_task_reassign_prepare_unsolicited_dataout()
519 cmd->write_data_done -= pdu->length; in iscsit_task_reassign_prepare_unsolicited_dataout()
524 for (i = 0; i < cmd->seq_count; i++) { in iscsit_task_reassign_prepare_unsolicited_dataout()
525 seq = &cmd->seq_list[i]; in iscsit_task_reassign_prepare_unsolicited_dataout()
530 cmd->write_data_done -= in iscsit_task_reassign_prepare_unsolicited_dataout()
532 cmd->first_burst_len = 0; in iscsit_task_reassign_prepare_unsolicited_dataout()
542 pdu = &cmd->pdu_list[j+seq->pdu_start]; in iscsit_task_reassign_prepare_unsolicited_dataout()
557 struct iscsi_cmd *cmd = tmr_req->ref_cmd; in iscsit_task_reassign_prepare_write() local
566 if (cmd->unsolicited_data) in iscsit_task_reassign_prepare_write()
567 iscsit_task_reassign_prepare_unsolicited_dataout(cmd, conn); in iscsit_task_reassign_prepare_write()
590 spin_lock_bh(&cmd->r2t_lock); in iscsit_task_reassign_prepare_write()
591 if (list_empty(&cmd->cmd_r2t_list)) { in iscsit_task_reassign_prepare_write()
592 spin_unlock_bh(&cmd->r2t_lock); in iscsit_task_reassign_prepare_write()
596 list_for_each_entry(r2t, &cmd->cmd_r2t_list, r2t_list) { in iscsit_task_reassign_prepare_write()
645 cmd->r2t_offset -= r2t->xfer_len; in iscsit_task_reassign_prepare_write()
650 cmd->data_sn = 0; in iscsit_task_reassign_prepare_write()
651 cmd->r2t_offset -= (r2t->xfer_len - in iscsit_task_reassign_prepare_write()
652 cmd->next_burst_len); in iscsit_task_reassign_prepare_write()
657 cmd->data_sn = 0; in iscsit_task_reassign_prepare_write()
658 cmd->r2t_offset -= r2t->xfer_len; in iscsit_task_reassign_prepare_write()
660 for (i = 0; i < cmd->pdu_count; i++) { in iscsit_task_reassign_prepare_write()
661 pdu = &cmd->pdu_list[i]; in iscsit_task_reassign_prepare_write()
669 cmd->next_burst_len -= pdu->length; in iscsit_task_reassign_prepare_write()
670 cmd->write_data_done -= pdu->length; in iscsit_task_reassign_prepare_write()
679 seq = iscsit_get_seq_holder(cmd, r2t->offset, in iscsit_task_reassign_prepare_write()
682 spin_unlock_bh(&cmd->r2t_lock); in iscsit_task_reassign_prepare_write()
686 cmd->write_data_done -= in iscsit_task_reassign_prepare_write()
693 cmd->seq_send_order--; in iscsit_task_reassign_prepare_write()
699 pdu = &cmd->pdu_list[i+seq->pdu_start]; in iscsit_task_reassign_prepare_write()
709 cmd->outstanding_r2ts--; in iscsit_task_reassign_prepare_write()
711 spin_unlock_bh(&cmd->r2t_lock); in iscsit_task_reassign_prepare_write()
725 cmd->cmd_flags &= ~ICF_SENT_LAST_R2T; in iscsit_task_reassign_prepare_write()
726 cmd->r2t_sn = tmr_req->exp_data_sn; in iscsit_task_reassign_prepare_write()
728 spin_lock_bh(&cmd->r2t_lock); in iscsit_task_reassign_prepare_write()
729 list_for_each_entry_safe(r2t, r2t_tmp, &cmd->cmd_r2t_list, r2t_list) { in iscsit_task_reassign_prepare_write()
744 spin_unlock_bh(&cmd->r2t_lock); in iscsit_task_reassign_prepare_write()
749 iscsit_free_r2t(r2t, cmd); in iscsit_task_reassign_prepare_write()
770 cmd->r2t_offset -= r2t->xfer_len; in iscsit_task_reassign_prepare_write()
772 cmd->seq_send_order--; in iscsit_task_reassign_prepare_write()
774 cmd->outstanding_r2ts--; in iscsit_task_reassign_prepare_write()
775 iscsit_free_r2t(r2t, cmd); in iscsit_task_reassign_prepare_write()
777 spin_unlock_bh(&cmd->r2t_lock); in iscsit_task_reassign_prepare_write()