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

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
...@@ -451,7 +451,7 @@ static int tcm_qla2xxx_handle_cmd(scsi_qla_host_t *vha, struct qla_tgt_cmd *cmd, ...@@ -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 se_portal_group *se_tpg;
struct tcm_qla2xxx_tpg *tpg; struct tcm_qla2xxx_tpg *tpg;
#endif #endif
int target_flags = TARGET_SCF_ACK_KREF; int rc, target_flags = TARGET_SCF_ACK_KREF;
unsigned long flags; unsigned long flags;
if (bidi) if (bidi)
...@@ -486,9 +486,17 @@ static int tcm_qla2xxx_handle_cmd(scsi_qla_host_t *vha, struct qla_tgt_cmd *cmd, ...@@ -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); list_add_tail(&cmd->sess_cmd_list, &sess->sess_cmd_list);
spin_unlock_irqrestore(&sess->sess_cmd_lock, flags); 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, cmd->unpacked_lun, data_length, fcp_task_attr,
data_dir, target_flags); 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) static void tcm_qla2xxx_handle_data_work(struct work_struct *work)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment