Lines Matching refs:cmd
49 isert_put_response(struct iscsi_conn *conn, struct iscsi_cmd *cmd);
76 isert_prot_cmd(struct isert_conn *conn, struct se_cmd *cmd) in isert_prot_cmd() argument
79 cmd->prot_op != TARGET_PROT_NORMAL); in isert_prot_cmd()
1028 struct iscsi_cmd *cmd; in isert_allocate_cmd() local
1030 cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE); in isert_allocate_cmd()
1031 if (!cmd) { in isert_allocate_cmd()
1035 isert_cmd = iscsit_priv_cmd(cmd); in isert_allocate_cmd()
1037 isert_cmd->iscsi_cmd = cmd; in isert_allocate_cmd()
1040 return cmd; in isert_allocate_cmd()
1045 struct isert_cmd *isert_cmd, struct iscsi_cmd *cmd, in isert_handle_scsi_cmd() argument
1054 rc = iscsit_setup_scsi_cmd(conn, cmd, buf); in isert_handle_scsi_cmd()
1058 imm_data = cmd->immediate_data; in isert_handle_scsi_cmd()
1059 imm_data_len = cmd->first_burst_len; in isert_handle_scsi_cmd()
1060 unsol_data = cmd->unsolicited_data; in isert_handle_scsi_cmd()
1061 data_len = cmd->se_cmd.data_length; in isert_handle_scsi_cmd()
1064 cmd->se_cmd.se_cmd_flags |= SCF_PASSTHROUGH_SG_TO_MEM_NOALLOC; in isert_handle_scsi_cmd()
1065 rc = iscsit_process_scsi_cmd(conn, cmd, hdr); in isert_handle_scsi_cmd()
1078 sg_copy_from_buffer(cmd->se_cmd.t_data_sg, sg_nents, in isert_handle_scsi_cmd()
1084 cmd->se_cmd.t_data_sg = &isert_cmd->sg; in isert_handle_scsi_cmd()
1085 cmd->se_cmd.t_data_nents = 1; in isert_handle_scsi_cmd()
1092 cmd->write_data_done += imm_data_len; in isert_handle_scsi_cmd()
1094 if (cmd->write_data_done == cmd->se_cmd.data_length) { in isert_handle_scsi_cmd()
1095 spin_lock_bh(&cmd->istate_lock); in isert_handle_scsi_cmd()
1096 cmd->cmd_flags |= ICF_GOT_LAST_DATAOUT; in isert_handle_scsi_cmd()
1097 cmd->i_state = ISTATE_RECEIVED_LAST_DATAOUT; in isert_handle_scsi_cmd()
1098 spin_unlock_bh(&cmd->istate_lock); in isert_handle_scsi_cmd()
1102 rc = iscsit_sequence_cmd(conn, cmd, buf, hdr->cmdsn); in isert_handle_scsi_cmd()
1105 iscsit_set_unsolicited_dataout(cmd); in isert_handle_scsi_cmd()
1107 target_put_sess_cmd(&cmd->se_cmd); in isert_handle_scsi_cmd()
1118 struct iscsi_cmd *cmd = NULL; in isert_handle_iscsi_dataout() local
1123 rc = iscsit_check_dataout_hdr(conn, buf, &cmd); in isert_handle_iscsi_dataout()
1126 else if (!cmd) in isert_handle_iscsi_dataout()
1131 if (!cmd->unsolicited_data) { in isert_handle_iscsi_dataout()
1139 unsol_data_len, cmd->write_data_done, in isert_handle_iscsi_dataout()
1140 cmd->se_cmd.data_length); in isert_handle_iscsi_dataout()
1142 sg_off = cmd->write_data_done / PAGE_SIZE; in isert_handle_iscsi_dataout()
1143 sg_start = &cmd->se_cmd.t_data_sg[sg_off]; in isert_handle_iscsi_dataout()
1145 page_off = cmd->write_data_done % PAGE_SIZE; in isert_handle_iscsi_dataout()
1161 rc = iscsit_check_dataout_payload(cmd, hdr, false); in isert_handle_iscsi_dataout()
1174 struct iscsi_cmd *cmd, struct iser_rx_desc *rx_desc, in isert_handle_nop_out() argument
1181 rc = iscsit_setup_nop_out(conn, cmd, hdr); in isert_handle_nop_out()
1188 return iscsit_process_nop_out(conn, cmd, hdr); in isert_handle_nop_out()
1193 struct iscsi_cmd *cmd, struct iser_rx_desc *rx_desc, in isert_handle_text_cmd() argument
1201 rc = iscsit_setup_text_cmd(conn, cmd, hdr); in isert_handle_text_cmd()
1210 cmd->text_in_ptr = text_in; in isert_handle_text_cmd()
1212 memcpy(cmd->text_in_ptr, isert_get_data(rx_desc), payload_length); in isert_handle_text_cmd()
1214 return iscsit_process_text_cmd(conn, cmd, hdr); in isert_handle_text_cmd()
1224 struct iscsi_cmd *cmd; in isert_rx_opcode() local
1238 cmd = isert_allocate_cmd(conn, rx_desc); in isert_rx_opcode()
1239 if (!cmd) in isert_rx_opcode()
1242 isert_cmd = iscsit_priv_cmd(cmd); in isert_rx_opcode()
1249 ret = isert_handle_scsi_cmd(isert_conn, isert_cmd, cmd, in isert_rx_opcode()
1253 cmd = isert_allocate_cmd(conn, rx_desc); in isert_rx_opcode()
1254 if (!cmd) in isert_rx_opcode()
1257 isert_cmd = iscsit_priv_cmd(cmd); in isert_rx_opcode()
1258 ret = isert_handle_nop_out(isert_conn, isert_cmd, cmd, in isert_rx_opcode()
1266 cmd = isert_allocate_cmd(conn, rx_desc); in isert_rx_opcode()
1267 if (!cmd) in isert_rx_opcode()
1270 ret = iscsit_handle_task_mgt_cmd(conn, cmd, in isert_rx_opcode()
1274 cmd = isert_allocate_cmd(conn, rx_desc); in isert_rx_opcode()
1275 if (!cmd) in isert_rx_opcode()
1278 ret = iscsit_handle_logout_cmd(conn, cmd, (unsigned char *)hdr); in isert_rx_opcode()
1282 cmd = iscsit_find_cmd_from_itt(conn, hdr->itt); in isert_rx_opcode()
1284 cmd = isert_allocate_cmd(conn, rx_desc); in isert_rx_opcode()
1286 if (!cmd) in isert_rx_opcode()
1289 isert_cmd = iscsit_priv_cmd(cmd); in isert_rx_opcode()
1290 ret = isert_handle_text_cmd(isert_conn, isert_cmd, cmd, in isert_rx_opcode()
1405 isert_rdma_rw_ctx_destroy(struct isert_cmd *cmd, struct isert_conn *conn) in isert_rdma_rw_ctx_destroy() argument
1407 struct se_cmd *se_cmd = &cmd->iscsi_cmd->se_cmd; in isert_rdma_rw_ctx_destroy()
1410 if (!cmd->rw.nr_ops) in isert_rdma_rw_ctx_destroy()
1414 rdma_rw_ctx_destroy_signature(&cmd->rw, conn->qp, in isert_rdma_rw_ctx_destroy()
1419 rdma_rw_ctx_destroy(&cmd->rw, conn->qp, conn->cm_id->port_num, in isert_rdma_rw_ctx_destroy()
1423 cmd->rw.nr_ops = 0; in isert_rdma_rw_ctx_destroy()
1429 struct iscsi_cmd *cmd = isert_cmd->iscsi_cmd; in isert_put_cmd() local
1436 switch (cmd->iscsi_opcode) { in isert_put_cmd()
1439 if (!list_empty(&cmd->i_conn_node)) in isert_put_cmd()
1440 list_del_init(&cmd->i_conn_node); in isert_put_cmd()
1443 if (cmd->data_direction == DMA_TO_DEVICE) { in isert_put_cmd()
1444 iscsit_stop_dataout_timer(cmd); in isert_put_cmd()
1452 cmd->se_cmd.t_state == TRANSPORT_WRITE_PENDING) { in isert_put_cmd()
1453 struct se_cmd *se_cmd = &cmd->se_cmd; in isert_put_cmd()
1460 transport_generic_free_cmd(&cmd->se_cmd, 0); in isert_put_cmd()
1464 if (!list_empty(&cmd->i_conn_node)) in isert_put_cmd()
1465 list_del_init(&cmd->i_conn_node); in isert_put_cmd()
1468 transport_generic_free_cmd(&cmd->se_cmd, 0); in isert_put_cmd()
1479 if (!list_empty(&cmd->i_conn_node)) in isert_put_cmd()
1480 list_del_init(&cmd->i_conn_node); in isert_put_cmd()
1488 if (cmd->se_cmd.se_tfo != NULL) { in isert_put_cmd()
1490 cmd->iscsi_opcode); in isert_put_cmd()
1491 transport_generic_free_cmd(&cmd->se_cmd, 0); in isert_put_cmd()
1496 iscsit_release_cmd(cmd); in isert_put_cmd()
1578 struct se_cmd *cmd = &isert_cmd->iscsi_cmd->se_cmd; in isert_rdma_write_done() local
1591 ret = isert_check_pi_status(cmd, isert_cmd->rw.reg->mr); in isert_rdma_write_done()
1601 kref_get(&cmd->cmd_kref); in isert_rdma_write_done()
1602 transport_generic_request_failure(cmd, cmd->pi_err); in isert_rdma_write_done()
1620 struct iscsi_cmd *cmd = isert_cmd->iscsi_cmd; in isert_rdma_read_done() local
1621 struct se_cmd *se_cmd = &cmd->se_cmd; in isert_rdma_read_done()
1634 iscsit_stop_dataout_timer(cmd); in isert_rdma_read_done()
1639 cmd->write_data_done = 0; in isert_rdma_read_done()
1642 spin_lock_bh(&cmd->istate_lock); in isert_rdma_read_done()
1643 cmd->cmd_flags |= ICF_GOT_LAST_DATAOUT; in isert_rdma_read_done()
1644 cmd->i_state = ISTATE_RECEIVED_LAST_DATAOUT; in isert_rdma_read_done()
1645 spin_unlock_bh(&cmd->istate_lock); in isert_rdma_read_done()
1665 struct iscsi_cmd *cmd = isert_cmd->iscsi_cmd; in isert_do_control_comp() local
1667 isert_dbg("Cmd %p i_state %d\n", isert_cmd, cmd->i_state); in isert_do_control_comp()
1669 switch (cmd->i_state) { in isert_do_control_comp()
1671 iscsit_tmr_post_handler(cmd, cmd->conn); in isert_do_control_comp()
1675 cmd->i_state = ISTATE_SENT_STATUS; in isert_do_control_comp()
1680 iscsit_logout_post_handler(cmd, cmd->conn); in isert_do_control_comp()
1683 isert_err("Unknown i_state %d\n", cmd->i_state); in isert_do_control_comp()
1758 isert_put_response(struct iscsi_conn *conn, struct iscsi_cmd *cmd) in isert_put_response() argument
1760 struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd); in isert_put_response()
1767 iscsit_build_rsp_pdu(cmd, conn, true, hdr); in isert_put_response()
1772 if (cmd->se_cmd.sense_buffer && in isert_put_response()
1773 ((cmd->se_cmd.se_cmd_flags & SCF_TRANSPORT_TASK_SENSE) || in isert_put_response()
1774 (cmd->se_cmd.se_cmd_flags & SCF_EMULATED_TASK_SENSE))) { in isert_put_response()
1780 put_unaligned_be16(cmd->se_cmd.scsi_sense_length, in isert_put_response()
1781 cmd->sense_buffer); in isert_put_response()
1782 cmd->se_cmd.scsi_sense_length += sizeof(__be16); in isert_put_response()
1784 padding = -(cmd->se_cmd.scsi_sense_length) & 3; in isert_put_response()
1785 hton24(hdr->dlength, (u32)cmd->se_cmd.scsi_sense_length); in isert_put_response()
1786 pdu_len = cmd->se_cmd.scsi_sense_length + padding; in isert_put_response()
1789 (void *)cmd->sense_buffer, pdu_len, in isert_put_response()
1809 isert_aborted_task(struct iscsi_conn *conn, struct iscsi_cmd *cmd) in isert_aborted_task() argument
1811 struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd); in isert_aborted_task()
1815 if (!list_empty(&cmd->i_conn_node)) in isert_aborted_task()
1816 list_del_init(&cmd->i_conn_node); in isert_aborted_task()
1819 if (cmd->data_direction == DMA_TO_DEVICE) in isert_aborted_task()
1820 iscsit_stop_dataout_timer(cmd); in isert_aborted_task()
1845 isert_put_nopin(struct iscsi_cmd *cmd, struct iscsi_conn *conn, in isert_put_nopin() argument
1848 struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd); in isert_put_nopin()
1853 iscsit_build_nopin_rsp(cmd, conn, (struct iscsi_nopin *) in isert_put_nopin()
1865 isert_put_logout_rsp(struct iscsi_cmd *cmd, struct iscsi_conn *conn) in isert_put_logout_rsp() argument
1867 struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd); in isert_put_logout_rsp()
1872 iscsit_build_logout_rsp(cmd, conn, (struct iscsi_logout_rsp *) in isert_put_logout_rsp()
1883 isert_put_tm_rsp(struct iscsi_cmd *cmd, struct iscsi_conn *conn) in isert_put_tm_rsp() argument
1885 struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd); in isert_put_tm_rsp()
1890 iscsit_build_task_mgt_rsp(cmd, conn, (struct iscsi_tm_rsp *) in isert_put_tm_rsp()
1901 isert_put_reject(struct iscsi_cmd *cmd, struct iscsi_conn *conn) in isert_put_reject() argument
1903 struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd); in isert_put_reject()
1913 iscsit_build_reject(cmd, conn, hdr); in isert_put_reject()
1918 (void *)cmd->buf_ptr, ISCSI_HDR_LEN, in isert_put_reject()
1936 isert_put_text_rsp(struct iscsi_cmd *cmd, struct iscsi_conn *conn) in isert_put_text_rsp() argument
1938 struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd); in isert_put_text_rsp()
1947 rc = iscsit_build_text_rsp(cmd, conn, hdr, ISCSI_INFINIBAND); in isert_put_text_rsp()
1958 void *txt_rsp_buf = cmd->buf_ptr; in isert_put_text_rsp()
2035 isert_rdma_rw_ctx_post(struct isert_cmd *cmd, struct isert_conn *conn, in isert_rdma_rw_ctx_post() argument
2038 struct se_cmd *se_cmd = &cmd->iscsi_cmd->se_cmd; in isert_rdma_rw_ctx_post()
2045 if (cmd->ctx_init_done) in isert_rdma_rw_ctx_post()
2049 addr = cmd->write_va; in isert_rdma_rw_ctx_post()
2050 rkey = cmd->write_stag; in isert_rdma_rw_ctx_post()
2051 offset = cmd->iscsi_cmd->write_data_done; in isert_rdma_rw_ctx_post()
2053 addr = cmd->read_va; in isert_rdma_rw_ctx_post()
2054 rkey = cmd->read_stag; in isert_rdma_rw_ctx_post()
2066 ret = rdma_rw_ctx_signature_init(&cmd->rw, conn->qp, port_num, in isert_rdma_rw_ctx_post()
2071 ret = rdma_rw_ctx_init(&cmd->rw, conn->qp, port_num, in isert_rdma_rw_ctx_post()
2077 isert_err("Cmd: %p failed to prepare RDMA res\n", cmd); in isert_rdma_rw_ctx_post()
2081 cmd->ctx_init_done = true; in isert_rdma_rw_ctx_post()
2084 ret = rdma_rw_ctx_post(&cmd->rw, conn->qp, port_num, cqe, chain_wr); in isert_rdma_rw_ctx_post()
2086 isert_err("Cmd: %p failed to post RDMA res\n", cmd); in isert_rdma_rw_ctx_post()
2091 isert_put_datain(struct iscsi_conn *conn, struct iscsi_cmd *cmd) in isert_put_datain() argument
2093 struct se_cmd *se_cmd = &cmd->se_cmd; in isert_put_datain()
2094 struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd); in isert_put_datain()
2112 iscsit_build_rsp_pdu(cmd, conn, true, (struct iscsi_scsi_rsp *) in isert_put_datain()
2132 isert_get_dataout(struct iscsi_conn *conn, struct iscsi_cmd *cmd, bool recovery) in isert_get_dataout() argument
2134 struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd); in isert_get_dataout()
2138 isert_cmd, cmd->se_cmd.data_length, cmd->write_data_done); in isert_get_dataout()
2150 isert_immediate_queue(struct iscsi_conn *conn, struct iscsi_cmd *cmd, int state) in isert_immediate_queue() argument
2152 struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd); in isert_immediate_queue()
2158 list_del_init(&cmd->i_conn_node); in isert_immediate_queue()
2163 ret = isert_put_nopin(cmd, conn, false); in isert_immediate_queue()
2175 isert_response_queue(struct iscsi_conn *conn, struct iscsi_cmd *cmd, int state) in isert_response_queue() argument
2182 ret = isert_put_logout_rsp(cmd, conn); in isert_response_queue()
2187 ret = isert_put_nopin(cmd, conn, true); in isert_response_queue()
2190 ret = isert_put_tm_rsp(cmd, conn); in isert_response_queue()
2193 ret = isert_put_reject(cmd, conn); in isert_response_queue()
2196 ret = isert_put_text_rsp(cmd, conn); in isert_response_queue()
2203 ret = isert_put_response(conn, cmd); in isert_response_queue()
2516 struct iscsi_cmd *cmd, *tmp; in isert_put_unsol_pending_cmds() local
2520 list_for_each_entry_safe(cmd, tmp, &conn->conn_cmd_list, i_conn_node) { in isert_put_unsol_pending_cmds()
2521 if ((cmd->cmd_flags & ICF_NON_IMMEDIATE_UNSOLICITED_DATA) && in isert_put_unsol_pending_cmds()
2522 (cmd->write_data_done < conn->sess->sess_ops->FirstBurstLength) && in isert_put_unsol_pending_cmds()
2523 (cmd->write_data_done < cmd->se_cmd.data_length)) in isert_put_unsol_pending_cmds()
2524 list_move_tail(&cmd->i_conn_node, &drop_cmd_list); in isert_put_unsol_pending_cmds()
2528 list_for_each_entry_safe(cmd, tmp, &drop_cmd_list, i_conn_node) { in isert_put_unsol_pending_cmds()
2529 list_del_init(&cmd->i_conn_node); in isert_put_unsol_pending_cmds()
2530 if (cmd->i_state != ISTATE_REMOVE) { in isert_put_unsol_pending_cmds()
2531 struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd); in isert_put_unsol_pending_cmds()
2533 isert_info("conn %p dropping cmd %p\n", conn, cmd); in isert_put_unsol_pending_cmds()