diff options
author | Mike Christie <michaelc@cs.wisc.edu> | 2010-08-03 01:02:24 +0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-08-06 20:00:26 +0400 |
commit | be948fc30dabc347e4fba4daf4da9fd83d2abf49 (patch) | |
tree | 38324d0bb068bc1e21f8972643290f9af4317fe5 /drivers | |
parent | 26845f585fad66dc23d87dad89d403cd64b48780 (diff) | |
download | linux-be948fc30dabc347e4fba4daf4da9fd83d2abf49.tar.xz |
[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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/scsi/libfc/fc_fcp.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/scsi/libfc/fc_fcp.c b/drivers/scsi/libfc/fc_fcp.c index eac4d09314eb..c797f6b48f05 100644 --- a/drivers/scsi/libfc/fc_fcp.c +++ b/drivers/scsi/libfc/fc_fcp.c @@ -1765,14 +1765,14 @@ int fc_queuecommand(struct scsi_cmnd *sc_cmd, void (*done)(struct scsi_cmnd *)) struct fcoe_dev_stats *stats; lport = shost_priv(sc_cmd->device->host); - spin_unlock_irq(lport->host->host_lock); rval = fc_remote_port_chkready(rport); if (rval) { sc_cmd->result = rval; done(sc_cmd); - goto out; + return 0; } + spin_unlock_irq(lport->host->host_lock); if (!*(struct fc_remote_port **)rport->dd_data) { /* |