When an RSCN is received during fabric discovery, it restarts.
After the restart, disc->seq_count was incremented, so when
the first frame was received, it was considered "out of sequence".
That left the state disc->active, preventing further discoveries.

Change to advance the sequence count before parsing, so that it
won't be changed after a potential restart.

Signed-off-by: Joe Eykholt <[email protected]>
---
 drivers/scsi/libfc/fc_disc.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)


diff --git a/drivers/scsi/libfc/fc_disc.c b/drivers/scsi/libfc/fc_disc.c
index a564e7c..9b838f7 100644
--- a/drivers/scsi/libfc/fc_disc.c
+++ b/drivers/scsi/libfc/fc_disc.c
@@ -628,11 +628,10 @@ static void fc_disc_gpn_ft_resp(struct fc_seq *sp, struct 
fc_frame *fp,
                            seq_cnt, disc->seq_count, fr_sof(fp), fr_eof(fp));
        }
        if (buf) {
+               disc->seq_count++;
                error = fc_disc_gpn_ft_parse(disc, buf, len);
                if (error)
                        fc_disc_error(disc, fp);
-               else
-                       disc->seq_count++;
        }
        fc_frame_free(fp);
 


_______________________________________________
devel mailing list
[email protected]
http://www.open-fcoe.org/mailman/listinfo/devel

Reply via email to