diff options
author | Mike Christie <michaelc@cs.wisc.edu> | 2010-08-02 17:02:24 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-08-06 12:00:26 -0400 |
commit | be948fc30dabc347e4fba4daf4da9fd83d2abf49 (patch) | |
tree | 38324d0bb068bc1e21f8972643290f9af4317fe5 /drivers | |
parent | 26845f585fad66dc23d87dad89d403cd64b48780 (diff) |
[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 *)) | |||
1765 | struct fcoe_dev_stats *stats; | 1765 | struct fcoe_dev_stats *stats; |
1766 | 1766 | ||
1767 | lport = shost_priv(sc_cmd->device->host); | 1767 | lport = shost_priv(sc_cmd->device->host); |
1768 | spin_unlock_irq(lport->host->host_lock); | ||
1769 | 1768 | ||
1770 | rval = fc_remote_port_chkready(rport); | 1769 | rval = fc_remote_port_chkready(rport); |
1771 | if (rval) { | 1770 | if (rval) { |
1772 | sc_cmd->result = rval; | 1771 | sc_cmd->result = rval; |
1773 | done(sc_cmd); | 1772 | done(sc_cmd); |
1774 | goto out; | 1773 | return 0; |
1775 | } | 1774 | } |
1775 | spin_unlock_irq(lport->host->host_lock); | ||
1776 | 1776 | ||
1777 | if (!*(struct fc_remote_port **)rport->dd_data) { | 1777 | if (!*(struct fc_remote_port **)rport->dd_data) { |
1778 | /* | 1778 | /* |