aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian King <brking@linux.vnet.ibm.com>2012-08-24 17:51:01 -0400
committerJames Bottomley <JBottomley@Parallels.com>2012-09-24 04:10:59 -0400
commit5cdf162654123c53f14524bb23546f4d11bfde28 (patch)
tree0ffb0d9b7da76ecdcfb78a47b1b50d07ec8def03
parenta077c7faf3cb3e28303ba431148a85f613f4e955 (diff)
[SCSI] ibmvfc: Ignore fabric RSCNs when link is dead
This fixes an issues seen where a Fabric RSCN event was received while the link was down, which resulted in repeated attempts to log back into the fabric, which then failed, resulting in the ibmvfc driver taking the host offline. Fix this by delaying taking any action regarding the fabric RSCN until the link comes back up. Signed-off-by: Brian King <brking@linux.vnet.ibm.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
-rw-r--r--drivers/scsi/ibmvscsi/ibmvfc.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/scsi/ibmvscsi/ibmvfc.c b/drivers/scsi/ibmvscsi/ibmvfc.c
index 4f73daccc9f..5e8d51bd03d 100644
--- a/drivers/scsi/ibmvscsi/ibmvfc.c
+++ b/drivers/scsi/ibmvscsi/ibmvfc.c
@@ -2625,8 +2625,10 @@ static void ibmvfc_handle_async(struct ibmvfc_async_crq *crq,
2625 case IBMVFC_AE_SCN_FABRIC: 2625 case IBMVFC_AE_SCN_FABRIC:
2626 case IBMVFC_AE_SCN_DOMAIN: 2626 case IBMVFC_AE_SCN_DOMAIN:
2627 vhost->events_to_log |= IBMVFC_AE_RSCN; 2627 vhost->events_to_log |= IBMVFC_AE_RSCN;
2628 vhost->delay_init = 1; 2628 if (vhost->state < IBMVFC_HALTED) {
2629 __ibmvfc_reset_host(vhost); 2629 vhost->delay_init = 1;
2630 __ibmvfc_reset_host(vhost);
2631 }
2630 break; 2632 break;
2631 case IBMVFC_AE_SCN_NPORT: 2633 case IBMVFC_AE_SCN_NPORT:
2632 case IBMVFC_AE_SCN_GROUP: 2634 case IBMVFC_AE_SCN_GROUP: