Skip to content

Commit f93f3a7

Browse files
Sagi GrimbergNicholas Bellinger
authored andcommitted
IB/isert: Accept RDMA_WRITE completions
In case of protected transactions, we will need to check the protection status of the transaction before sending SCSI response. So be ready for RDMA_WRITE completions. currently we don't ask for these completions, but for T10-PI we will. Signed-off-by: Sagi Grimberg <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
1 parent d3e125d commit f93f3a7

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

drivers/infiniband/ulp/isert/ib_isert.c

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ isert_unreg_rdma(struct isert_cmd *isert_cmd, struct isert_conn *isert_conn);
5151
static int
5252
isert_reg_rdma(struct iscsi_conn *conn, struct iscsi_cmd *cmd,
5353
struct isert_rdma_wr *wr);
54+
static int
55+
isert_put_response(struct iscsi_conn *conn, struct iscsi_cmd *cmd);
5456

5557
static void
5658
isert_qp_event_callback(struct ib_event *e, void *context)
@@ -1651,6 +1653,18 @@ isert_completion_put(struct iser_tx_desc *tx_desc, struct isert_cmd *isert_cmd,
16511653
isert_put_cmd(isert_cmd);
16521654
}
16531655

1656+
static void
1657+
isert_completion_rdma_write(struct iser_tx_desc *tx_desc,
1658+
struct isert_cmd *isert_cmd)
1659+
{
1660+
struct iscsi_cmd *cmd = isert_cmd->iscsi_cmd;
1661+
struct isert_conn *isert_conn = isert_cmd->conn;
1662+
struct isert_device *device = isert_conn->conn_device;
1663+
1664+
device->unreg_rdma_mem(isert_cmd, isert_conn);
1665+
isert_put_response(isert_conn->conn, cmd);
1666+
}
1667+
16541668
static void
16551669
isert_completion_rdma_read(struct iser_tx_desc *tx_desc,
16561670
struct isert_cmd *isert_cmd)
@@ -1773,8 +1787,9 @@ __isert_send_completion(struct iser_tx_desc *tx_desc,
17731787
isert_conn, ib_dev);
17741788
break;
17751789
case ISER_IB_RDMA_WRITE:
1776-
pr_err("isert_send_completion: Got ISER_IB_RDMA_WRITE\n");
1777-
dump_stack();
1790+
pr_debug("isert_send_completion: Got ISER_IB_RDMA_WRITE\n");
1791+
atomic_dec(&isert_conn->post_send_buf_count);
1792+
isert_completion_rdma_write(tx_desc, isert_cmd);
17781793
break;
17791794
case ISER_IB_RDMA_READ:
17801795
pr_debug("isert_send_completion: Got ISER_IB_RDMA_READ:\n");

0 commit comments

Comments
 (0)