diff options
Diffstat (limited to 'drivers/infiniband/ulp/isert/ib_isert.c')
| -rw-r--r-- | drivers/infiniband/ulp/isert/ib_isert.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/infiniband/ulp/isert/ib_isert.c b/drivers/infiniband/ulp/isert/ib_isert.c index 529d2cbfe45a..18ada7fb0fc9 100644 --- a/drivers/infiniband/ulp/isert/ib_isert.c +++ b/drivers/infiniband/ulp/isert/ib_isert.c | |||
| @@ -2162,6 +2162,24 @@ isert_put_response(struct iscsi_conn *conn, struct iscsi_cmd *cmd) | |||
| 2162 | return isert_post_response(isert_conn, isert_cmd); | 2162 | return isert_post_response(isert_conn, isert_cmd); |
| 2163 | } | 2163 | } |
| 2164 | 2164 | ||
| 2165 | static void | ||
| 2166 | isert_aborted_task(struct iscsi_conn *conn, struct iscsi_cmd *cmd) | ||
| 2167 | { | ||
| 2168 | struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd); | ||
| 2169 | struct isert_conn *isert_conn = (struct isert_conn *)conn->context; | ||
| 2170 | struct isert_device *device = isert_conn->conn_device; | ||
| 2171 | |||
| 2172 | spin_lock_bh(&conn->cmd_lock); | ||
| 2173 | if (!list_empty(&cmd->i_conn_node)) | ||
| 2174 | list_del_init(&cmd->i_conn_node); | ||
| 2175 | spin_unlock_bh(&conn->cmd_lock); | ||
| 2176 | |||
| 2177 | if (cmd->data_direction == DMA_TO_DEVICE) | ||
| 2178 | iscsit_stop_dataout_timer(cmd); | ||
| 2179 | |||
| 2180 | device->unreg_rdma_mem(isert_cmd, isert_conn); | ||
| 2181 | } | ||
| 2182 | |||
| 2165 | static int | 2183 | static int |
| 2166 | isert_put_nopin(struct iscsi_cmd *cmd, struct iscsi_conn *conn, | 2184 | isert_put_nopin(struct iscsi_cmd *cmd, struct iscsi_conn *conn, |
| 2167 | bool nopout_response) | 2185 | bool nopout_response) |
| @@ -3217,6 +3235,7 @@ static struct iscsit_transport iser_target_transport = { | |||
| 3217 | .iscsit_get_dataout = isert_get_dataout, | 3235 | .iscsit_get_dataout = isert_get_dataout, |
| 3218 | .iscsit_queue_data_in = isert_put_datain, | 3236 | .iscsit_queue_data_in = isert_put_datain, |
| 3219 | .iscsit_queue_status = isert_put_response, | 3237 | .iscsit_queue_status = isert_put_response, |
| 3238 | .iscsit_aborted_task = isert_aborted_task, | ||
| 3220 | }; | 3239 | }; |
| 3221 | 3240 | ||
| 3222 | static int __init isert_init(void) | 3241 | static int __init isert_init(void) |
