diff options
| author | Andy Grover <agrover@redhat.com> | 2012-01-19 13:39:17 -0800 | 
|---|---|---|
| committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2012-02-25 14:37:47 -0800 | 
| commit | c8e31f26feeb03dc6f51bff68135cc58431e099b (patch) | |
| tree | 8d584fcb7cb7a58988cd2463a9a26f577410e6ac /drivers/target/loopback/tcm_loop.c | |
| parent | 35b2cdc4fea1f0d13e1602c07e62c797c9fe5ed4 (diff) | |
| download | olio-linux-3.10-c8e31f26feeb03dc6f51bff68135cc58431e099b.tar.xz olio-linux-3.10-c8e31f26feeb03dc6f51bff68135cc58431e099b.zip  | |
target: Add SCF_SCSI_TMR_CDB usage and drop se_tmr_req_cache
Change the test for if a cmd is a tmr request to checking if
SCF_SCSI_TMR_CDB (a new flag) is set in cmd->se_cmd_flags.
Also remove se_tmr_req_cache usage in favor of kzalloc usage,
and make core_tmr_alloc_req() return int + setup se_cmd->se_tmr_req
directly and fix up various fabric module usages
Cc: Andy Grover <agrover@redhat.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers/target/loopback/tcm_loop.c')
| -rw-r--r-- | drivers/target/loopback/tcm_loop.c | 13 | 
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/target/loopback/tcm_loop.c b/drivers/target/loopback/tcm_loop.c index c47ff7f59e5..7cfbcb00b3c 100644 --- a/drivers/target/loopback/tcm_loop.c +++ b/drivers/target/loopback/tcm_loop.c @@ -187,7 +187,7 @@ static int tcm_loop_check_stop_free(struct se_cmd *se_cmd)  	 * pointer.  These will be released directly in tcm_loop_device_reset()  	 * with transport_generic_free_cmd().  	 */ -	if (se_cmd->se_tmr_req) +	if (se_cmd->se_cmd_flags & SCF_SCSI_TMR_CDB)  		return 0;  	/*  	 * Release the struct se_cmd, which will make a callback to release @@ -324,7 +324,7 @@ static int tcm_loop_device_reset(struct scsi_cmnd *sc)  	struct tcm_loop_nexus *tl_nexus;  	struct tcm_loop_tmr *tl_tmr = NULL;  	struct tcm_loop_tpg *tl_tpg; -	int ret = FAILED; +	int ret = FAILED, rc;  	/*  	 * Locate the tcm_loop_hba_t pointer  	 */ @@ -365,12 +365,9 @@ static int tcm_loop_device_reset(struct scsi_cmnd *sc)  	transport_init_se_cmd(se_cmd, se_tpg->se_tpg_tfo, se_sess, 0,  				DMA_NONE, MSG_SIMPLE_TAG,  				&tl_cmd->tl_sense_buf[0]); -	/* -	 * Allocate the LUN_RESET TMR -	 */ -	se_cmd->se_tmr_req = core_tmr_alloc_req(se_cmd, tl_tmr, -						TMR_LUN_RESET, GFP_KERNEL); -	if (IS_ERR(se_cmd->se_tmr_req)) + +	rc = core_tmr_alloc_req(se_cmd, tl_tmr, TMR_LUN_RESET, GFP_KERNEL); +	if (rc < 0)  		goto release;  	/*  	 * Locate the underlying TCM struct se_lun from sc->device->lun  |