qla2xxx: Get rid of redundant qla_tgt_sess.tearing_down
The only place that sets qla_tgt_sess.tearing_down calls target_splice_sess_cmd_list() immediately afterwards, without dropping the lock it holds. That function sets se_session.sess_tearing_down, so we can get rid of the qla_target-specific flag, and in the one place that looks at the qla_tgt_sess.tearing_down flag just test se_session.sess_tearing_down instead. Cc: Chad Dupuis <chad.dupuis@qlogic.com> Cc: Arun Easi <arun.easi@qlogic.com> Signed-off-by: Roland Dreier <roland@purestorage.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
77d4c74506
commit
b46e34a672
|
@ -2644,7 +2644,7 @@ static void qlt_do_work(struct work_struct *work)
|
||||||
sess = ha->tgt.tgt_ops->find_sess_by_s_id(vha,
|
sess = ha->tgt.tgt_ops->find_sess_by_s_id(vha,
|
||||||
atio->u.isp24.fcp_hdr.s_id);
|
atio->u.isp24.fcp_hdr.s_id);
|
||||||
if (sess) {
|
if (sess) {
|
||||||
if (unlikely(sess->tearing_down)) {
|
if (unlikely(sess->se_sess->sess_tearing_down)) {
|
||||||
sess = NULL;
|
sess = NULL;
|
||||||
spin_unlock_irqrestore(&ha->hardware_lock, flags);
|
spin_unlock_irqrestore(&ha->hardware_lock, flags);
|
||||||
goto out_term;
|
goto out_term;
|
||||||
|
|
|
@ -813,7 +813,6 @@ struct qla_tgt_sess {
|
||||||
unsigned int conf_compl_supported:1;
|
unsigned int conf_compl_supported:1;
|
||||||
unsigned int deleted:1;
|
unsigned int deleted:1;
|
||||||
unsigned int local:1;
|
unsigned int local:1;
|
||||||
unsigned int tearing_down:1;
|
|
||||||
|
|
||||||
struct se_session *se_sess;
|
struct se_session *se_sess;
|
||||||
struct scsi_qla_host *vha;
|
struct scsi_qla_host *vha;
|
||||||
|
|
|
@ -464,7 +464,6 @@ static int tcm_qla2xxx_shutdown_session(struct se_session *se_sess)
|
||||||
vha = sess->vha;
|
vha = sess->vha;
|
||||||
|
|
||||||
spin_lock_irqsave(&vha->hw->hardware_lock, flags);
|
spin_lock_irqsave(&vha->hw->hardware_lock, flags);
|
||||||
sess->tearing_down = 1;
|
|
||||||
target_splice_sess_cmd_list(se_sess);
|
target_splice_sess_cmd_list(se_sess);
|
||||||
spin_unlock_irqrestore(&vha->hw->hardware_lock, flags);
|
spin_unlock_irqrestore(&vha->hw->hardware_lock, flags);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue