[SCSI] libfc: call fc_remote_port_chkready under the host lock.
The rport port state and flags are set under the host lock, so this patch calls fc_remote_port_chkready with the host lock held like is also done in the other fc drivers. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
parent
26845f585f
commit
be948fc30d
@ -1765,14 +1765,14 @@ int fc_queuecommand(struct scsi_cmnd *sc_cmd, void (*done)(struct scsi_cmnd *))
|
|||||||
struct fcoe_dev_stats *stats;
|
struct fcoe_dev_stats *stats;
|
||||||
|
|
||||||
lport = shost_priv(sc_cmd->device->host);
|
lport = shost_priv(sc_cmd->device->host);
|
||||||
spin_unlock_irq(lport->host->host_lock);
|
|
||||||
|
|
||||||
rval = fc_remote_port_chkready(rport);
|
rval = fc_remote_port_chkready(rport);
|
||||||
if (rval) {
|
if (rval) {
|
||||||
sc_cmd->result = rval;
|
sc_cmd->result = rval;
|
||||||
done(sc_cmd);
|
done(sc_cmd);
|
||||||
goto out;
|
return 0;
|
||||||
}
|
}
|
||||||
|
spin_unlock_irq(lport->host->host_lock);
|
||||||
|
|
||||||
if (!*(struct fc_remote_port **)rport->dd_data) {
|
if (!*(struct fc_remote_port **)rport->dd_data) {
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user