mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-04 01:49:36 +00:00
[SCSI] fcoe: cleans up fcoe_disable and fcoe_enable
The fc_fabric_logoff and fc_fabric_login are redundant here after recently added fcoe_ctlr_link_down/up to these functions, therefore this patch removes logoff and login to only use link down and up here. This works best for their current usages with fcoe DCB link down or up. This also works well to avoid EIO errors when fcoe DCB link goes down as lport state moves out of ready quickly from fcoe_ctlr_link_down and that allows re-queuing timed out IOs for this case also. Signed-off-by: Vasu Dev <vasu.dev@intel.com> Signed-off-by: Robert Love <robert.w.love@intel.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
parent
e0d93c5bc4
commit
9d4cbc05f3
1 changed files with 4 additions and 6 deletions
|
@ -1918,8 +1918,8 @@ static int fcoe_disable(const char *buffer, struct kernel_param *kp)
|
||||||
rtnl_unlock();
|
rtnl_unlock();
|
||||||
|
|
||||||
if (fcoe) {
|
if (fcoe) {
|
||||||
fc_fabric_logoff(fcoe->ctlr.lp);
|
|
||||||
fcoe_ctlr_link_down(&fcoe->ctlr);
|
fcoe_ctlr_link_down(&fcoe->ctlr);
|
||||||
|
fcoe_clean_pending_queue(fcoe->ctlr.lp);
|
||||||
} else
|
} else
|
||||||
rc = -ENODEV;
|
rc = -ENODEV;
|
||||||
|
|
||||||
|
@ -1972,12 +1972,10 @@ static int fcoe_enable(const char *buffer, struct kernel_param *kp)
|
||||||
fcoe = fcoe_hostlist_lookup_port(netdev);
|
fcoe = fcoe_hostlist_lookup_port(netdev);
|
||||||
rtnl_unlock();
|
rtnl_unlock();
|
||||||
|
|
||||||
if (fcoe) {
|
if (!fcoe)
|
||||||
if (!fcoe_link_ok(fcoe->ctlr.lp))
|
|
||||||
fcoe_ctlr_link_up(&fcoe->ctlr);
|
|
||||||
rc = fc_fabric_login(fcoe->ctlr.lp);
|
|
||||||
} else
|
|
||||||
rc = -ENODEV;
|
rc = -ENODEV;
|
||||||
|
else if (!fcoe_link_ok(fcoe->ctlr.lp))
|
||||||
|
fcoe_ctlr_link_up(&fcoe->ctlr);
|
||||||
|
|
||||||
dev_put(netdev);
|
dev_put(netdev);
|
||||||
out_nodev:
|
out_nodev:
|
||||||
|
|
Loading…
Reference in a new issue