On Mon, 2012-07-16 at 11:04 -0700, Roland Dreier wrote: > From: Roland Dreier <roland@xxxxxxxxxxxxxxx> > > Now that target_submit_cmd() / target_get_sess_cmd() check > sess_tearing_down before adding commands to the list, we no longer > need the check in qlt_do_work(). In fact this check is racy anyway > (and that race is what inspired the change to add the check of > sess_tearing_down to the target core). > > Cc: Chad Dupuis <chad.dupuis@xxxxxxxxxx> > Cc: Arun Easi <arun.easi@xxxxxxxxxx> > Signed-off-by: Roland Dreier <roland@xxxxxxxxxxxxxxx> > --- > drivers/scsi/qla2xxx/qla_target.c | 16 +++------------- > 1 file changed, 3 insertions(+), 13 deletions(-) > Glad to see this one finally go. ;) Applied to for-next > diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c > index 87b5a330..5b30132 100644 > --- a/drivers/scsi/qla2xxx/qla_target.c > +++ b/drivers/scsi/qla2xxx/qla_target.c > @@ -2643,19 +2643,9 @@ static void qlt_do_work(struct work_struct *work) > spin_lock_irqsave(&ha->hardware_lock, flags); > sess = ha->tgt.tgt_ops->find_sess_by_s_id(vha, > atio->u.isp24.fcp_hdr.s_id); > - if (sess) { > - if (unlikely(sess->se_sess->sess_tearing_down)) { > - sess = NULL; > - spin_unlock_irqrestore(&ha->hardware_lock, flags); > - goto out_term; > - } else { > - /* > - * Do the extra kref_get() before dropping > - * qla_hw_data->hardware_lock. > - */ > - kref_get(&sess->se_sess->sess_kref); > - } > - } > + /* Do kref_get() before dropping qla_hw_data->hardware_lock. */ > + if (sess) > + kref_get(&sess->se_sess->sess_kref); > spin_unlock_irqrestore(&ha->hardware_lock, flags); > > if (unlikely(!sess)) { -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html