Commit 919ba0ad authored by Mike Christie's avatar Mike Christie Committed by Martin K. Petersen
Browse files

scsi: target: qla2xxx: 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_qla2xxx 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 detect the target_stop_session() call and
return an error.

Link: https://lore.kernel.org/r/20210227170006.5077-8-michael.christie@oracle.com


Cc: Nilesh Javali <njavali@marvell.com>
Tested-by: default avatarLaurence Oberman <loberman@redhat.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarHimanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: default avatarMike Christie <michael.christie@oracle.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 7d676851
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -451,7 +451,7 @@ static int tcm_qla2xxx_handle_cmd(scsi_qla_host_t *vha, struct qla_tgt_cmd *cmd,
	struct se_portal_group *se_tpg;
	struct tcm_qla2xxx_tpg *tpg;
#endif
	int target_flags = TARGET_SCF_ACK_KREF;
	int rc, target_flags = TARGET_SCF_ACK_KREF;
	unsigned long flags;

	if (bidi)
@@ -486,9 +486,17 @@ static int tcm_qla2xxx_handle_cmd(scsi_qla_host_t *vha, struct qla_tgt_cmd *cmd,
	list_add_tail(&cmd->sess_cmd_list, &sess->sess_cmd_list);
	spin_unlock_irqrestore(&sess->sess_cmd_lock, flags);

	return target_submit_cmd(se_cmd, se_sess, cdb, &cmd->sense_buffer[0],
	rc = target_init_cmd(se_cmd, se_sess, &cmd->sense_buffer[0],
			     cmd->unpacked_lun, data_length, fcp_task_attr,
			     data_dir, target_flags);
	if (rc)
		return rc;

	if (target_submit_prep(se_cmd, cdb, NULL, 0, NULL, 0, NULL, 0))
		return 0;

	target_submit(se_cmd);
	return 0;
}

static void tcm_qla2xxx_handle_data_work(struct work_struct *work)