[SCSI] libfc: Handle discovery failure during ctlr link down
While we wait for GPN_FT response, if the ctlr link goes down, the stack generates a completion for GPN_FT with error FC_EXCH_CLOSED, and reports a discovery error. Discovery is not retried in this case, and rightly so. However, the 'pending' flag stays set, which does not allow subsequent discovery to succeed as GPN_FT will never be issued. Fix it by clearing the pending flag when the discovery fails due to GPN_FT failure. Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com> Signed-off-by: Robert Love <robert.w.love@intel.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
parent
d4042e9c84
commit
0083208473
|
@ -337,6 +337,13 @@ static void fc_disc_error(struct fc_disc *disc, struct fc_frame *fp)
|
|||
schedule_delayed_work(&disc->disc_work, delay);
|
||||
} else
|
||||
fc_disc_done(disc, DISC_EV_FAILED);
|
||||
} else if (PTR_ERR(fp) == -FC_EX_CLOSED) {
|
||||
/*
|
||||
* if discovery fails due to lport reset, clear
|
||||
* pending flag so that subsequent discovery can
|
||||
* continue
|
||||
*/
|
||||
disc->pending = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue