Skip to content

Commit

Permalink
net/sysfs: Fix the bitrot in network device kobject namespace support
Browse files Browse the repository at this point in the history
I had a couple of stupid bugs in:
netns: Teach network device kobjects which namespace they are in.

- I duplicated the Kconfig for the NET_NS
- The build was broken when sysfs was not compiled in

The sysfs breakage is because after I moved the operations
for the sysfs to the kobject layer, to make things cleaner
I forgot to move the ifdefs.  Opps.

I'm not quite certain how I got introduced a second NET_NS Kconfig,
but it was probably a 3 way merge somewhere along the way that
did not notice that the NET_NS Kconfig option had mvoed and thout
that was a bug.  It probably slipped in because it used to be the
sysfs patches were the first patches in my network namespace patches.
Some things just don't go like you would expect.

Neither of these bugs actually affect anything in the common case
but they should be fixed.

Thanks to Serge for noticing they were present.

Reported-by: Serge E. Hallyn <serue@us.ibm.com>
Signed-off-by: Eric W. Biederman <ebiederm@aristanetworks.com>
Acked-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Eric W. Biederman authored and Greg Kroah-Hartman committed May 21, 2010
1 parent 608b4b9 commit d6523dd
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 13 deletions.
8 changes: 0 additions & 8 deletions net/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,6 @@ config COMPAT_NETLINK_MESSAGES

menu "Networking options"

config NET_NS
bool "Network namespace support"
default n
depends on EXPERIMENTAL && NAMESPACES
help
Allow user space to create what appear to be multiple instances
of the network stack.

source "net/packet/Kconfig"
source "net/unix/Kconfig"
source "net/xfrm/Kconfig"
Expand Down
8 changes: 3 additions & 5 deletions net/core/net-sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -469,6 +469,7 @@ static struct attribute_group wireless_group = {
.attrs = wireless_attrs,
};
#endif
#endif /* CONFIG_SYSFS */

#ifdef CONFIG_RPS
/*
Expand Down Expand Up @@ -796,11 +797,10 @@ static void net_kobj_ns_exit(struct net *net)
kobj_ns_exit(KOBJ_NS_TYPE_NET, net);
}

static struct pernet_operations sysfs_net_ops = {
static struct pernet_operations kobj_net_ops = {
.exit = net_kobj_ns_exit,
};

#endif /* CONFIG_SYSFS */

#ifdef CONFIG_HOTPLUG
static int netdev_uevent(struct device *d, struct kobj_uevent_env *env)
Expand Down Expand Up @@ -948,8 +948,6 @@ void netdev_initialize_kobject(struct net_device *net)
int netdev_kobject_init(void)
{
kobj_ns_type_register(&net_ns_type_operations);
#ifdef CONFIG_SYSFS
register_pernet_subsys(&sysfs_net_ops);
#endif
register_pernet_subsys(&kobj_net_ops);
return class_register(&net_class);
}

0 comments on commit d6523dd

Please sign in to comment.