We only want the FCoE create and destroy routines to deal with top level
N_Ports, the VN_Ports are tracked in scsi_transport_fc.

Signed-off-by: Chris Leech <[email protected]>
---

 drivers/scsi/fcoe/fcoe.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c
index 0cdfd09..a0c44a9 100644
--- a/drivers/scsi/fcoe/fcoe.c
+++ b/drivers/scsi/fcoe/fcoe.c
@@ -523,9 +523,6 @@ static void fcoe_if_destroy(struct fc_lport *lp)
        /* Logout of the fabric */
        fc_fabric_logoff(lp);
 
-       /* Remove the instance from fcoe's list */
-       fcoe_hostlist_remove(lp);
-
        /* clean up netdev configurations */
        fcoe_netdev_cleanup(fc);
 
@@ -679,9 +676,6 @@ static struct fc_lport *fcoe_if_create(struct net_device 
*netdev,
                goto out_lp_destroy;
        }
 
-       /* add to lports list */
-       fcoe_hostlist_add(lp);
-
        lp->boot_time = jiffies;
 
        fc_fabric_login(lp);
@@ -1642,6 +1636,8 @@ static int fcoe_destroy(const char *buffer, struct 
kernel_param *kp)
                rc = -ENODEV;
                goto out_putdev;
        }
+       /* Remove the instance from fcoe's list */
+       fcoe_hostlist_remove(lport);
        fcoe_if_destroy(lport);
        fcoe_ethdrv_put(netdev);
        rc = 0;
@@ -1684,6 +1680,10 @@ static int fcoe_create(const char *buffer, struct 
kernel_param *kp)
                rc = -EIO;
                goto out_putdev;
        }
+
+       /* add to lports list */
+       fcoe_hostlist_add(lport);
+
        rc = 0;
 out_putdev:
        dev_put(netdev);

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

Reply via email to