mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-30 22:26:55 +00:00
scsi: target: tcm_fc: Convert to new submission API
target_submit_cmd() is now only for simple drivers that do their own sync during shutdown and do not use target_stop_session(). tcm_fc uses target_stop_session() to sync session shutdown with LIO core, so we use target_init_cmd(), target_submit_prep(), target_submit(), because target_init_cmd() will now detect the target_stop_session() call and return an error. Link: https://lore.kernel.org/r/20210227170006.5077-14-michael.christie@oracle.com Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Mike Christie <michael.christie@oracle.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
1f48b065da
commit
47edc84f33
1 changed files with 10 additions and 4 deletions
|
@ -543,16 +543,22 @@ static void ft_send_work(struct work_struct *work)
|
|||
|
||||
fc_seq_set_resp(cmd->seq, ft_recv_seq, cmd);
|
||||
cmd->se_cmd.tag = fc_seq_exch(cmd->seq)->rxid;
|
||||
|
||||
/*
|
||||
* Use a single se_cmd->cmd_kref as we expect to release se_cmd
|
||||
* directly from ft_check_stop_free callback in response path.
|
||||
*/
|
||||
if (target_submit_cmd(&cmd->se_cmd, cmd->sess->se_sess, fcp->fc_cdb,
|
||||
&cmd->ft_sense_buffer[0], scsilun_to_int(&fcp->fc_lun),
|
||||
ntohl(fcp->fc_dl), task_attr, data_dir,
|
||||
TARGET_SCF_ACK_KREF))
|
||||
if (target_init_cmd(&cmd->se_cmd, cmd->sess->se_sess,
|
||||
&cmd->ft_sense_buffer[0],
|
||||
scsilun_to_int(&fcp->fc_lun), ntohl(fcp->fc_dl),
|
||||
task_attr, data_dir, TARGET_SCF_ACK_KREF))
|
||||
goto err;
|
||||
|
||||
if (target_submit_prep(&cmd->se_cmd, fcp->fc_cdb, NULL, 0, NULL, 0,
|
||||
NULL, 0))
|
||||
return;
|
||||
|
||||
target_submit(&cmd->se_cmd);
|
||||
pr_debug("r_ctl %x target_submit_cmd %p\n", fh->fh_r_ctl, cmd);
|
||||
return;
|
||||
|
||||
|
|
Loading…
Reference in a new issue