isert_cmd
struct isert_cmd *isert_cmd;
isert_cmd = iscsit_priv_cmd(cmd);
isert_cmd->conn = isert_conn;
isert_cmd->iscsit_cmd = cmd;
isert_cmd->rx_desc = rx_desc;
struct isert_cmd *isert_cmd, struct iscsit_cmd *cmd,
sg_init_table(&isert_cmd->sg, 1);
cmd->se_cmd.t_data_sg = &isert_cmd->sg;
sg_set_buf(&isert_cmd->sg, isert_get_data(rx_desc),
isert_handle_nop_out(struct isert_conn *isert_conn, struct isert_cmd *isert_cmd,
isert_handle_text_cmd(struct isert_conn *isert_conn, struct isert_cmd *isert_cmd,
struct isert_cmd *isert_cmd;
isert_cmd = iscsit_priv_cmd(cmd);
isert_cmd->read_stag = read_stag;
isert_cmd->read_va = read_va;
isert_cmd->write_stag = write_stag;
isert_cmd->write_va = write_va;
isert_cmd->inv_rkey = read_stag ? read_stag : write_stag;
ret = isert_handle_scsi_cmd(isert_conn, isert_cmd, cmd,
isert_cmd = iscsit_priv_cmd(cmd);
ret = isert_handle_nop_out(isert_conn, isert_cmd, cmd,
isert_cmd = iscsit_priv_cmd(cmd);
ret = isert_handle_text_cmd(isert_conn, isert_cmd, cmd,
isert_rdma_rw_ctx_destroy(struct isert_cmd *cmd, struct isert_conn *conn)
isert_put_cmd(struct isert_cmd *isert_cmd, bool comp_err)
struct iscsit_cmd *cmd = isert_cmd->iscsit_cmd;
struct isert_conn *isert_conn = isert_cmd->conn;
isert_dbg("Cmd %p\n", isert_cmd);
isert_rdma_rw_ctx_destroy(isert_cmd, isert_conn);
hdr = (struct iscsi_text_rsp *)&isert_cmd->tx_desc.iscsi_header;
isert_completion_put(struct iser_tx_desc *tx_desc, struct isert_cmd *isert_cmd,
if (isert_cmd->pdu_buf_dma != 0) {
ib_dma_unmap_single(ib_dev, isert_cmd->pdu_buf_dma,
isert_cmd->pdu_buf_len, DMA_TO_DEVICE);
isert_cmd->pdu_buf_dma = 0;
isert_put_cmd(isert_cmd, comp_err);
struct isert_cmd *isert_cmd = tx_desc_to_cmd(desc);
struct se_cmd *cmd = &isert_cmd->iscsit_cmd->se_cmd;
isert_completion_put(desc, isert_cmd, device->ib_device, true);
isert_dbg("Cmd %p\n", isert_cmd);
ret = isert_check_pi_status(cmd, isert_cmd->rw.reg->mr);
isert_rdma_rw_ctx_destroy(isert_cmd, isert_conn);
ret = isert_put_response(isert_conn->conn, isert_cmd->iscsit_cmd);
struct isert_cmd *isert_cmd = tx_desc_to_cmd(desc);
struct iscsit_cmd *cmd = isert_cmd->iscsit_cmd;
isert_completion_put(desc, isert_cmd, device->ib_device, true);
isert_dbg("Cmd %p\n", isert_cmd);
ret = isert_check_pi_status(se_cmd, isert_cmd->rw.reg->mr);
isert_rdma_rw_ctx_destroy(isert_cmd, isert_conn);
isert_dbg("Cmd: %p RDMA_READ comp calling execute_cmd\n", isert_cmd);
struct isert_cmd *isert_cmd = container_of(work,
struct isert_cmd, comp_work);
struct isert_conn *isert_conn = isert_cmd->conn;
struct iscsit_cmd *cmd = isert_cmd->iscsit_cmd;
isert_dbg("Cmd %p i_state %d\n", isert_cmd, cmd->i_state);
isert_completion_put(&isert_cmd->tx_desc, isert_cmd,
struct isert_cmd *isert_cmd = tx_desc_to_cmd(tx_desc);
isert_completion_put(tx_desc, isert_cmd, ib_dev, true);
isert_dbg("Cmd %p\n", isert_cmd);
switch (isert_cmd->iscsit_cmd->i_state) {
INIT_WORK(&isert_cmd->comp_work, isert_do_control_comp);
queue_work(isert_comp_wq, &isert_cmd->comp_work);
isert_cmd->iscsit_cmd->i_state = ISTATE_SENT_STATUS;
isert_completion_put(tx_desc, isert_cmd, ib_dev, false);
isert_post_response(struct isert_conn *isert_conn, struct isert_cmd *isert_cmd)
ret = isert_post_recv(isert_conn, isert_cmd->rx_desc);
ret = ib_post_send(isert_conn->qp, &isert_cmd->tx_desc.send_wr, NULL);
struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd);
struct ib_send_wr *send_wr = &isert_cmd->tx_desc.send_wr;
&isert_cmd->tx_desc.iscsi_header;
isert_create_send_desc(isert_conn, isert_cmd, &isert_cmd->tx_desc);
isert_init_tx_hdrs(isert_conn, &isert_cmd->tx_desc);
struct ib_sge *tx_dsg = &isert_cmd->tx_desc.tx_sg[1];
isert_cmd->pdu_buf_dma = ib_dma_map_single(ib_dev,
if (ib_dma_mapping_error(ib_dev, isert_cmd->pdu_buf_dma))
isert_cmd->pdu_buf_len = pdu_len;
tx_dsg->addr = isert_cmd->pdu_buf_dma;
isert_cmd->tx_desc.num_sge = 2;
isert_init_send_wr(isert_conn, isert_cmd, send_wr);
return isert_post_response(isert_conn, isert_cmd);
struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd);
isert_rdma_rw_ctx_destroy(isert_cmd, isert_conn);
struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd);
struct ib_send_wr *send_wr = &isert_cmd->tx_desc.send_wr;
isert_create_send_desc(isert_conn, isert_cmd, &isert_cmd->tx_desc);
&isert_cmd->tx_desc.iscsi_header,
isert_init_tx_hdrs(isert_conn, &isert_cmd->tx_desc);
isert_init_send_wr(isert_conn, isert_cmd, send_wr);
return isert_post_response(isert_conn, isert_cmd);
struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd);
struct ib_send_wr *send_wr = &isert_cmd->tx_desc.send_wr;
isert_create_send_desc(isert_conn, isert_cmd, &isert_cmd->tx_desc);
&isert_cmd->tx_desc.iscsi_header);
isert_init_tx_hdrs(isert_conn, &isert_cmd->tx_desc);
isert_init_send_wr(isert_conn, isert_cmd, send_wr);
return isert_post_response(isert_conn, isert_cmd);
struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd);
struct ib_send_wr *send_wr = &isert_cmd->tx_desc.send_wr;
isert_create_send_desc(isert_conn, isert_cmd, &isert_cmd->tx_desc);
&isert_cmd->tx_desc.iscsi_header);
isert_init_tx_hdrs(isert_conn, &isert_cmd->tx_desc);
isert_init_send_wr(isert_conn, isert_cmd, send_wr);
return isert_post_response(isert_conn, isert_cmd);
struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd);
struct ib_send_wr *send_wr = &isert_cmd->tx_desc.send_wr;
struct ib_sge *tx_dsg = &isert_cmd->tx_desc.tx_sg[1];
(struct iscsi_reject *)&isert_cmd->tx_desc.iscsi_header;
isert_create_send_desc(isert_conn, isert_cmd, &isert_cmd->tx_desc);
isert_init_tx_hdrs(isert_conn, &isert_cmd->tx_desc);
isert_cmd->pdu_buf_dma = ib_dma_map_single(ib_dev,
if (ib_dma_mapping_error(ib_dev, isert_cmd->pdu_buf_dma))
isert_cmd->pdu_buf_len = ISCSI_HDR_LEN;
tx_dsg->addr = isert_cmd->pdu_buf_dma;
isert_cmd->tx_desc.num_sge = 2;
isert_init_send_wr(isert_conn, isert_cmd, send_wr);
return isert_post_response(isert_conn, isert_cmd);
struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd);
struct ib_send_wr *send_wr = &isert_cmd->tx_desc.send_wr;
(struct iscsi_text_rsp *)&isert_cmd->tx_desc.iscsi_header;
isert_create_send_desc(isert_conn, isert_cmd, &isert_cmd->tx_desc);
isert_init_tx_hdrs(isert_conn, &isert_cmd->tx_desc);
struct ib_sge *tx_dsg = &isert_cmd->tx_desc.tx_sg[1];
isert_cmd->pdu_buf_dma = ib_dma_map_single(ib_dev,
if (ib_dma_mapping_error(ib_dev, isert_cmd->pdu_buf_dma))
isert_cmd->pdu_buf_len = txt_rsp_len;
tx_dsg->addr = isert_cmd->pdu_buf_dma;
isert_cmd->tx_desc.num_sge = 2;
isert_init_send_wr(isert_conn, isert_cmd, send_wr);
return isert_post_response(isert_conn, isert_cmd);
isert_rdma_rw_ctx_post(struct isert_cmd *cmd, struct isert_conn *conn,
struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd);
isert_cmd, se_cmd->data_length);
isert_cmd->tx_desc.tx_cqe.done = isert_rdma_write_done;
cqe = &isert_cmd->tx_desc.tx_cqe;
isert_create_send_desc(isert_conn, isert_cmd,
&isert_cmd->tx_desc);
&isert_cmd->tx_desc.iscsi_header);
isert_init_tx_hdrs(isert_conn, &isert_cmd->tx_desc);
isert_init_send_wr(isert_conn, isert_cmd,
&isert_cmd->tx_desc.send_wr);
rc = isert_post_recv(isert_conn, isert_cmd->rx_desc);
chain_wr = &isert_cmd->tx_desc.send_wr;
rc = isert_rdma_rw_ctx_post(isert_cmd, isert_conn, cqe, chain_wr);
isert_cmd, rc);
struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd);
isert_cmd, cmd->se_cmd.data_length, cmd->write_data_done);
isert_cmd->tx_desc.tx_cqe.done = isert_rdma_read_done;
ret = isert_rdma_rw_ctx_post(isert_cmd, conn->context,
&isert_cmd->tx_desc.tx_cqe, NULL);
isert_cmd, ret);
struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd);
isert_put_cmd(isert_cmd, true);
struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd);
isert_put_cmd(isert_cmd, true);
.priv_size = sizeof(struct isert_cmd),
struct isert_cmd *isert_cmd,
isert_init_send_wr(struct isert_conn *isert_conn, struct isert_cmd *isert_cmd,
struct iser_tx_desc *tx_desc = &isert_cmd->tx_desc;
if (isert_conn->snd_w_inv && isert_cmd->inv_rkey) {
send_wr->ex.invalidate_rkey = isert_cmd->inv_rkey;
send_wr->num_sge = isert_cmd->tx_desc.num_sge;
static inline struct isert_cmd *tx_desc_to_cmd(struct iser_tx_desc *desc)
return container_of(desc, struct isert_cmd, tx_desc);