diff options
author | Varun Prakash <varun@chelsio.com> | 2016-04-19 14:30:09 -0400 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2016-05-10 02:12:06 -0400 |
commit | 7ec811a8e9c3b8289a863d0dac717e08a5093403 (patch) | |
tree | 7437afab71ca6ce7e495dff5dd9a4b1558bfd7ee | |
parent | 2854bb23cd5bef39fd845b7bdfac7799438bb920 (diff) |
iscsi-target: add void (*iscsit_release_cmd)()
Add void (*iscsit_release_cmd)() to
struct iscsit_transport, iscsi-target
uses this callback to release transport
driver resources associated with an iSCSI cmd.
cxgbit.ko needs this callback to release DDP
resource and sg page in case of
PASSTHROUGH_SG_TO_MEM_NOALLOC.
Signed-off-by: Varun Prakash <varun@chelsio.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
-rw-r--r-- | drivers/target/iscsi/iscsi_target_util.c | 3 | ||||
-rw-r--r-- | include/target/iscsi/iscsi_transport.h | 1 |
2 files changed, 4 insertions, 0 deletions
diff --git a/drivers/target/iscsi/iscsi_target_util.c b/drivers/target/iscsi/iscsi_target_util.c index 428b0d9e3dba..a5330171ebe5 100644 --- a/drivers/target/iscsi/iscsi_target_util.c +++ b/drivers/target/iscsi/iscsi_target_util.c | |||
@@ -725,6 +725,9 @@ void __iscsit_free_cmd(struct iscsi_cmd *cmd, bool scsi_cmd, | |||
725 | iscsit_remove_cmd_from_immediate_queue(cmd, conn); | 725 | iscsit_remove_cmd_from_immediate_queue(cmd, conn); |
726 | iscsit_remove_cmd_from_response_queue(cmd, conn); | 726 | iscsit_remove_cmd_from_response_queue(cmd, conn); |
727 | } | 727 | } |
728 | |||
729 | if (conn && conn->conn_transport->iscsit_release_cmd) | ||
730 | conn->conn_transport->iscsit_release_cmd(conn, cmd); | ||
728 | } | 731 | } |
729 | 732 | ||
730 | void iscsit_free_cmd(struct iscsi_cmd *cmd, bool shutdown) | 733 | void iscsit_free_cmd(struct iscsi_cmd *cmd, bool shutdown) |
diff --git a/include/target/iscsi/iscsi_transport.h b/include/target/iscsi/iscsi_transport.h index 24b613a09aee..3b0053efdfba 100644 --- a/include/target/iscsi/iscsi_transport.h +++ b/include/target/iscsi/iscsi_transport.h | |||
@@ -24,6 +24,7 @@ struct iscsit_transport { | |||
24 | void (*iscsit_aborted_task)(struct iscsi_conn *, struct iscsi_cmd *); | 24 | void (*iscsit_aborted_task)(struct iscsi_conn *, struct iscsi_cmd *); |
25 | int (*iscsit_xmit_pdu)(struct iscsi_conn *, struct iscsi_cmd *, | 25 | int (*iscsit_xmit_pdu)(struct iscsi_conn *, struct iscsi_cmd *, |
26 | struct iscsi_datain_req *, const void *, u32); | 26 | struct iscsi_datain_req *, const void *, u32); |
27 | void (*iscsit_release_cmd)(struct iscsi_conn *, struct iscsi_cmd *); | ||
27 | enum target_prot_op (*iscsit_get_sup_prot_ops)(struct iscsi_conn *); | 28 | enum target_prot_op (*iscsit_get_sup_prot_ops)(struct iscsi_conn *); |
28 | }; | 29 | }; |
29 | 30 | ||