Commit 47edc84f authored by Mike Christie's avatar Mike Christie Committed by Martin K. Petersen
Browse files

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: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarMike Christie <michael.christie@oracle.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 1f48b065
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -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;