diff options
author | Joe Eykholt <jeykholt@cisco.com> | 2009-08-25 14:02:33 -0700 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2009-09-10 12:07:50 -0500 |
commit | c762608bf75f792dcaf3658338189b9970951704 (patch) | |
tree | 16ed727f905466e550de7c2bee962c06736bda1d /drivers/scsi | |
parent | 883a337cf8969b2906ffd8aeb838d875f7338190 (diff) | |
download | op-kernel-dev-c762608bf75f792dcaf3658338189b9970951704.zip op-kernel-dev-c762608bf75f792dcaf3658338189b9970951704.tar.gz |
[SCSI] libfc: fix: empty zone causes endless discovery retries.
On some switches, an empty zone causes GPN_FT to be rejected
with reason 9 (unable) explanation 7 (FC-4 types not registered),
which causes discovery to be retried endlessly. Treat this as
just an empty response and consider discovery complete.
Signed-off-by: Joe Eykholt <jeykholt@cisco.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/libfc/fc_disc.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/scsi/libfc/fc_disc.c b/drivers/scsi/libfc/fc_disc.c index 844376c..9b8043b 100644 --- a/drivers/scsi/libfc/fc_disc.c +++ b/drivers/scsi/libfc/fc_disc.c @@ -617,6 +617,9 @@ static void fc_disc_gpn_ft_resp(struct fc_seq *sp, struct fc_frame *fp, "(check zoning)\n", cp->ct_reason, cp->ct_explan); event = DISC_EV_FAILED; + if (cp->ct_reason == FC_FS_RJT_UNABL && + cp->ct_explan == FC_FS_EXP_FTNR) + event = DISC_EV_SUCCESS; } else { FC_DISC_DBG(disc, "GPN_FT unexpected response code " "%x\n", ntohs(cp->ct_cmd)); |