diff options
Diffstat (limited to 'drivers/target/iscsi/iscsi_target_util.c')
-rw-r--r-- | drivers/target/iscsi/iscsi_target_util.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/target/iscsi/iscsi_target_util.c b/drivers/target/iscsi/iscsi_target_util.c index c4be6223b9cc..02348f727bd4 100644 --- a/drivers/target/iscsi/iscsi_target_util.c +++ b/drivers/target/iscsi/iscsi_target_util.c | |||
@@ -840,6 +840,23 @@ void iscsit_release_cmd(struct iscsi_cmd *cmd) | |||
840 | kmem_cache_free(lio_cmd_cache, cmd); | 840 | kmem_cache_free(lio_cmd_cache, cmd); |
841 | } | 841 | } |
842 | 842 | ||
843 | void iscsit_free_cmd(struct iscsi_cmd *cmd) | ||
844 | { | ||
845 | /* | ||
846 | * Determine if a struct se_cmd is assoicated with | ||
847 | * this struct iscsi_cmd. | ||
848 | */ | ||
849 | switch (cmd->iscsi_opcode) { | ||
850 | case ISCSI_OP_SCSI_CMD: | ||
851 | case ISCSI_OP_SCSI_TMFUNC: | ||
852 | transport_generic_free_cmd(&cmd->se_cmd, 1); | ||
853 | break; | ||
854 | default: | ||
855 | iscsit_release_cmd(cmd); | ||
856 | break; | ||
857 | } | ||
858 | } | ||
859 | |||
843 | int iscsit_check_session_usage_count(struct iscsi_session *sess) | 860 | int iscsit_check_session_usage_count(struct iscsi_session *sess) |
844 | { | 861 | { |
845 | spin_lock_bh(&sess->session_usage_lock); | 862 | spin_lock_bh(&sess->session_usage_lock); |