aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/target
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/target')
-rw-r--r--drivers/target/tcm_fc/tfc_cmd.c32
1 files changed, 3 insertions, 29 deletions
diff --git a/drivers/target/tcm_fc/tfc_cmd.c b/drivers/target/tcm_fc/tfc_cmd.c
index a08119f57039..ed69c0deb102 100644
--- a/drivers/target/tcm_fc/tfc_cmd.c
+++ b/drivers/target/tcm_fc/tfc_cmd.c
@@ -354,8 +354,6 @@ static void ft_send_resp_code_and_free(struct ft_cmd *cmd,
354static void ft_send_tm(struct ft_cmd *cmd) 354static void ft_send_tm(struct ft_cmd *cmd)
355{ 355{
356 struct fcp_cmnd *fcp; 356 struct fcp_cmnd *fcp;
357 struct ft_sess *sess;
358 int rc;
359 u8 tm_func; 357 u8 tm_func;
360 358
361 fcp = fc_frame_payload_get(cmd->req_frame, sizeof(*fcp)); 359 fcp = fc_frame_payload_get(cmd->req_frame, sizeof(*fcp));
@@ -386,33 +384,9 @@ static void ft_send_tm(struct ft_cmd *cmd)
386 return; 384 return;
387 } 385 }
388 386
389 transport_init_se_cmd(&cmd->se_cmd, &ft_configfs->tf_ops, 387 target_submit_tmr(&cmd->se_cmd, cmd->sess->se_sess,
390 cmd->sess->se_sess, 0, DMA_NONE, 0, 388 &cmd->ft_sense_buffer[0], scsilun_to_int(&fcp->fc_lun),
391 &cmd->ft_sense_buffer[0]); 389 cmd, tm_func, 0);
392 target_get_sess_cmd(cmd->sess->se_sess, &cmd->se_cmd, false);
393
394 pr_debug("alloc tm cmd fn %d\n", tm_func);
395 rc = core_tmr_alloc_req(&cmd->se_cmd, cmd, tm_func, GFP_KERNEL);
396 if (rc < 0) {
397 pr_debug("alloc failed\n");
398 ft_send_resp_code_and_free(cmd, FCP_TMF_FAILED);
399 return;
400 }
401
402 rc = transport_lookup_tmr_lun(&cmd->se_cmd, scsilun_to_int(&fcp->fc_lun));
403 if (rc < 0) {
404 pr_debug("Failed to get LUN for TMR func %d, "
405 "se_cmd %p, unpacked_lun %d\n",
406 tm_func, &cmd->se_cmd, scsilun_to_int(&fcp->fc_lun));
407 ft_dump_cmd(cmd, __func__);
408 sess = cmd->sess;
409 transport_send_check_condition_and_sense(&cmd->se_cmd,
410 cmd->se_cmd.scsi_sense_reason, 0);
411 transport_generic_free_cmd(&cmd->se_cmd, 0);
412 return;
413 }
414
415 transport_generic_handle_tmr(&cmd->se_cmd);
416} 390}
417 391
418/* 392/*