aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/target/iscsi/iscsi_target_util.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/target/iscsi/iscsi_target_util.c')
-rw-r--r--drivers/target/iscsi/iscsi_target_util.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/drivers/target/iscsi/iscsi_target_util.c b/drivers/target/iscsi/iscsi_target_util.c
index f00137f377b..02348f727bd 100644
--- a/drivers/target/iscsi/iscsi_target_util.c
+++ b/drivers/target/iscsi/iscsi_target_util.c
@@ -289,7 +289,8 @@ struct iscsi_cmd *iscsit_allocate_se_cmd_for_tmr(
289 } 289 }
290 290
291 se_cmd->se_tmr_req = core_tmr_alloc_req(se_cmd, 291 se_cmd->se_tmr_req = core_tmr_alloc_req(se_cmd,
292 (void *)cmd->tmr_req, tcm_function); 292 (void *)cmd->tmr_req, tcm_function,
293 GFP_KERNEL);
293 if (!se_cmd->se_tmr_req) 294 if (!se_cmd->se_tmr_req)
294 goto out; 295 goto out;
295 296
@@ -839,6 +840,23 @@ void iscsit_release_cmd(struct iscsi_cmd *cmd)
839 kmem_cache_free(lio_cmd_cache, cmd); 840 kmem_cache_free(lio_cmd_cache, cmd);
840} 841}
841 842
843void 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
842int iscsit_check_session_usage_count(struct iscsi_session *sess) 860int iscsit_check_session_usage_count(struct iscsi_session *sess)
843{ 861{
844 spin_lock_bh(&sess->session_usage_lock); 862 spin_lock_bh(&sess->session_usage_lock);