diff options
| author | Stephen Hemminger <shemminger@osdl.org> | 2003-05-29 06:02:49 -0700 |
|---|---|---|
| committer | David S. Miller <davem@nuts.ninka.net> | 2003-05-29 06:02:49 -0700 |
| commit | 51d9af05725442c96d6b86fd39c6a6716a39f637 (patch) | |
| tree | 1ea015b6a64b42b647fc510b163a808310645551 /net | |
| parent | 05d018c2e93e1c438c69a550591c9e0ad2acabf9 (diff) | |
[BRIDGE]: Make delete bridge work with current unregister semantics.
Diffstat (limited to 'net')
| -rw-r--r-- | net/bridge/br_if.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c index 99b1944c9f3a..2062884bd2c2 100644 --- a/net/bridge/br_if.c +++ b/net/bridge/br_if.c @@ -170,11 +170,12 @@ int br_del_bridge(const char *name) struct net_device *dev; int ret = 0; - dev = dev_get_by_name(name); + rtnl_lock(); + dev = __dev_get_by_name(name); if (dev == NULL) - return -ENXIO; /* Could not find device */ + ret = -ENXIO; /* Could not find device */ - if (!(dev->priv_flags & IFF_EBRIDGE)) { + else if (!(dev->priv_flags & IFF_EBRIDGE)) { /* Attempt to delete non bridge device! */ ret = -EPERM; } @@ -186,11 +187,10 @@ int br_del_bridge(const char *name) else { del_ifs((struct net_bridge *) dev->priv); - - unregister_netdev(dev); + unregister_netdevice(dev); } - dev_put(dev); + rtnl_unlock(); return ret; } |
