[SCSI] qla2xxx: Fix to avoid recursive lock failure during BSG timeout.
Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: Madhuranath Iyengar <Madhu.Iyengar@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
Родитель
0ce8791149
Коммит
900a36e327
|
@ -1512,6 +1512,7 @@ qla24xx_bsg_timeout(struct fc_bsg_job *bsg_job)
|
||||||
if (((sp_bsg->type == SRB_CT_CMD) ||
|
if (((sp_bsg->type == SRB_CT_CMD) ||
|
||||||
(sp_bsg->type == SRB_ELS_CMD_HST))
|
(sp_bsg->type == SRB_ELS_CMD_HST))
|
||||||
&& (sp_bsg->u.bsg_job == bsg_job)) {
|
&& (sp_bsg->u.bsg_job == bsg_job)) {
|
||||||
|
spin_unlock_irqrestore(&ha->hardware_lock, flags);
|
||||||
if (ha->isp_ops->abort_command(sp)) {
|
if (ha->isp_ops->abort_command(sp)) {
|
||||||
DEBUG2(qla_printk(KERN_INFO, ha,
|
DEBUG2(qla_printk(KERN_INFO, ha,
|
||||||
"scsi(%ld): mbx "
|
"scsi(%ld): mbx "
|
||||||
|
@ -1527,6 +1528,7 @@ qla24xx_bsg_timeout(struct fc_bsg_job *bsg_job)
|
||||||
bsg_job->req->errors =
|
bsg_job->req->errors =
|
||||||
bsg_job->reply->result = 0;
|
bsg_job->reply->result = 0;
|
||||||
}
|
}
|
||||||
|
spin_lock_irqsave(&ha->hardware_lock, flags);
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче