diff options
author | Brian King <brking@linux.vnet.ibm.com> | 2011-06-03 09:23:20 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2011-06-29 13:08:39 -0400 |
commit | 38553564dc1052640515ed86be3ccb76cda6eee7 (patch) | |
tree | 080ce5b65af268d025d43e2ff668169251f7bf5f /drivers/scsi/ibmvscsi/ibmvfc.c | |
parent | 0d72c6fcb5cd215eeab824fac216ea42c5b574aa (diff) |
[SCSI] ibmvfc: Fix Virtual I/O failover hang
If a Virtual I/O server fails in a dual virtual I/O server multipath
configuration, ensure we delete all remote ports so that path failover
can occur. For a single path configuration, the remote ports will
go into devloss state.
Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/ibmvscsi/ibmvfc.c')
-rw-r--r-- | drivers/scsi/ibmvscsi/ibmvfc.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/scsi/ibmvscsi/ibmvfc.c b/drivers/scsi/ibmvscsi/ibmvfc.c index b7650613b8c2..bdfa223a7dbb 100644 --- a/drivers/scsi/ibmvscsi/ibmvfc.c +++ b/drivers/scsi/ibmvscsi/ibmvfc.c | |||
@@ -4306,8 +4306,8 @@ static void ibmvfc_do_work(struct ibmvfc_host *vhost) | |||
4306 | spin_lock_irqsave(vhost->host->host_lock, flags); | 4306 | spin_lock_irqsave(vhost->host->host_lock, flags); |
4307 | if (rc == H_CLOSED) | 4307 | if (rc == H_CLOSED) |
4308 | vio_enable_interrupts(to_vio_dev(vhost->dev)); | 4308 | vio_enable_interrupts(to_vio_dev(vhost->dev)); |
4309 | else if (rc || (rc = ibmvfc_send_crq_init(vhost)) || | 4309 | if (rc || (rc = ibmvfc_send_crq_init(vhost)) || |
4310 | (rc = vio_enable_interrupts(to_vio_dev(vhost->dev)))) { | 4310 | (rc = vio_enable_interrupts(to_vio_dev(vhost->dev)))) { |
4311 | ibmvfc_link_down(vhost, IBMVFC_LINK_DEAD); | 4311 | ibmvfc_link_down(vhost, IBMVFC_LINK_DEAD); |
4312 | dev_err(vhost->dev, "Error after reset (rc=%d)\n", rc); | 4312 | dev_err(vhost->dev, "Error after reset (rc=%d)\n", rc); |
4313 | } | 4313 | } |