From: Daniel Lezcano <dlezcano@fr.ibm.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Benjamin Thery <benjamin.thery@bull.net>,
netdev <netdev@vger.kernel.org>,
Dave Miller <davem@davemloft.net>,
Greg Kroah-Hartman <gregkh@suse.de>,
Al Viro <viro@ftp.linux.org.uk>, Serge Hallyn <serue@us.ibm.com>,
linux-kernel@vger.kernel.org, Tejun Heo <htejun@gmail.com>,
Denis Lunev <den@openvz.org>,
Linux Containers <containers@lists.linux-foundation.org>
Subject: Re: [PATCH] netns: Coexist with the sysfs limitations
Date: Wed, 22 Oct 2008 22:40:12 +0200 [thread overview]
Message-ID: <48FF8FAC.1000805@fr.ibm.com> (raw)
In-Reply-To: <m17i80nzff.fsf@frodo.ebiederm.org>
Eric W. Biederman wrote:
> To make testing of the network namespace simpler allow
> the network namespace code and the sysfs code to be
> compiled and run at the same time. To do this only
> virtual devices are allowed in the additional network
> namespaces and those virtual devices are not placed
> in the kobject tree.
>
> Since virtual devices don't actually do anything interesting
> hardware wise that needs device management there should
> be no loss in keeping them out of the kobject tree and
> by implication sysfs. The gain in ease of testing
> and code coverage should be significant.
>
> I.e. people running distributions that make it next to
> impossible to boot without sysfs should at be able to
> boot a test kernel now.
>
> Plus no ABIs are harmed with this patch.
>
> Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Acked-by: Daniel Lezcano <dlezcano@fr.ibm.com>
> ---
> net/Kconfig | 2 +-
> net/core/dev.c | 12 +++++++++++-
> net/core/net-sysfs.c | 7 +++++++
> 3 files changed, 19 insertions(+), 2 deletions(-)
>
> diff --git a/net/Kconfig b/net/Kconfig
> index d789d79..8c3d97c 100644
> --- a/net/Kconfig
> +++ b/net/Kconfig
> @@ -27,7 +27,7 @@ menu "Networking options"
> config NET_NS
> bool "Network namespace support"
> default n
> - depends on EXPERIMENTAL && !SYSFS && NAMESPACES
> + depends on EXPERIMENTAL && NAMESPACES
> help
> Allow user space to create what appear to be multiple instances
> of the network stack.
> diff --git a/net/core/dev.c b/net/core/dev.c
> index b8a4fd0..a7f0461 100644
> --- a/net/core/dev.c
> +++ b/net/core/dev.c
> @@ -4449,6 +4449,15 @@ int dev_change_net_namespace(struct net_device *dev, struct net *net, const char
> if (dev->features & NETIF_F_NETNS_LOCAL)
> goto out;
>
> +#ifdef CONFIG_SYSFS
> + /* Don't allow real devices to be moved when sysfs
> + * is enabled.
> + */
> + err = -EINVAL;
> + if (dev->dev.parent)
> + goto out;
> +#endif
> +
> /* Ensure the device has been registrered */
> err = -EINVAL;
> if (dev->reg_state != NETREG_REGISTERED)
> @@ -4506,6 +4515,8 @@ int dev_change_net_namespace(struct net_device *dev, struct net *net, const char
> */
> dev_addr_discard(dev);
>
> + netdev_unregister_kobject(dev);
> +
> /* Actually switch the network namespace */
> dev_net_set(dev, net);
>
> @@ -4522,7 +4533,6 @@ int dev_change_net_namespace(struct net_device *dev, struct net *net, const char
> }
>
> /* Fixup kobjects */
> - netdev_unregister_kobject(dev);
> err = netdev_register_kobject(dev);
> WARN_ON(err);
>
> diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
> index 92d6b94..85cb8bd 100644
> --- a/net/core/net-sysfs.c
> +++ b/net/core/net-sysfs.c
> @@ -476,6 +476,10 @@ void netdev_unregister_kobject(struct net_device * net)
> struct device *dev = &(net->dev);
>
> kobject_get(&dev->kobj);
> +
> + if (dev_net(net) != &init_net)
> + return;
> +
> device_del(dev);
> }
>
> @@ -501,6 +505,9 @@ int netdev_register_kobject(struct net_device *net)
> #endif
> #endif /* CONFIG_SYSFS */
>
> + if (dev_net(net) != &init_net)
> + return 0;
> +
> return device_add(dev);
> }
>
--
Sauf indication contraire ci-dessus:
Compagnie IBM France
Siège Social : Tour Descartes, 2, avenue Gambetta, La Défense 5, 92400
Courbevoie
RCS Nanterre 552 118 465
Forme Sociale : S.A.S.
Capital Social : 542.737.118 ?
SIREN/SIRET : 552 118 465 02430
next prev parent reply other threads:[~2008-10-22 20:40 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-22 15:21 [PATCH 0/4][RFC] netns: sysfs: add a netns suffix to net device sysfs entries Benjamin Thery
2008-10-22 15:21 ` [PATCH 1/4] netns: add in ida ID to identify the network namespace Benjamin Thery
2008-10-22 15:21 ` Benjamin Thery
2008-10-22 15:22 ` [PATCH 2/4] netns: Export nets id to /proc/net/netns Benjamin Thery
2008-10-22 15:22 ` Benjamin Thery
2008-10-22 15:22 ` [PATCH 3/4] net: cleanup some vars names to be more consistant with the network code Benjamin Thery
2008-10-22 15:22 ` Benjamin Thery
2008-10-22 15:22 ` [PATCH 4/4] netns: sysfs: add netns suffix to net devices sysfs entries Benjamin Thery
2008-10-22 15:22 ` Benjamin Thery
2008-10-22 19:59 ` [PATCH 0/4][RFC] netns: sysfs: add a netns suffix to net device " Eric W. Biederman
2008-10-22 20:30 ` Serge E. Hallyn
2008-10-22 21:01 ` Eric W. Biederman
[not found] ` <m18wsgmji0.fsf-B27657KtZYmhTnVgQlOflh2eb7JE58TQ@public.gmane.org>
2008-10-22 21:55 ` Stephen Hemminger
2008-10-22 21:55 ` Stephen Hemminger
2008-10-22 22:54 ` Eric W. Biederman
2008-10-22 22:54 ` Eric W. Biederman
2008-10-23 4:14 ` Kyle Moffett
[not found] ` <m11vy8jl5s.fsf-B27657KtZYmhTnVgQlOflh2eb7JE58TQ@public.gmane.org>
2008-10-23 4:14 ` Kyle Moffett
[not found] ` <20081022203045.GA4633-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-10-22 21:01 ` Eric W. Biederman
2008-10-23 11:56 ` Benjamin Thery
[not found] ` <49006671.3010804-6ktuUTfB/bM@public.gmane.org>
2008-10-23 15:46 ` Eric W. Biederman
2008-10-23 15:46 ` Eric W. Biederman
[not found] ` <m1d4hso0ym.fsf-B27657KtZYmhTnVgQlOflh2eb7JE58TQ@public.gmane.org>
2008-10-22 20:30 ` Serge E. Hallyn
2008-10-23 11:56 ` Benjamin Thery
2008-10-22 20:16 ` Greg KH
2008-10-22 21:08 ` Eric W. Biederman
2008-10-22 21:24 ` Greg KH
[not found] ` <m17i80l4mt.fsf-B27657KtZYmhTnVgQlOflh2eb7JE58TQ@public.gmane.org>
2008-10-22 21:24 ` Greg KH
[not found] ` <20081022201601.GC24959-l3A5Bk7waGM@public.gmane.org>
2008-10-22 21:08 ` Eric W. Biederman
2008-10-22 20:32 ` [PATCH] netns: Coexist with the sysfs limitations Eric W. Biederman
2008-10-22 20:40 ` Daniel Lezcano [this message]
[not found] ` <m17i80nzff.fsf-B27657KtZYmhTnVgQlOflh2eb7JE58TQ@public.gmane.org>
2008-10-22 20:40 ` Daniel Lezcano
2008-10-22 21:21 ` Serge E. Hallyn
2008-10-22 21:21 ` Serge E. Hallyn
2008-10-23 8:04 ` Benjamin Thery
2008-10-23 15:40 ` Eric W. Biederman
[not found] ` <49003019.40904-6ktuUTfB/bM@public.gmane.org>
2008-10-23 15:40 ` Eric W. Biederman
2008-10-23 15:56 ` [PATCH] netns: Coexist with the sysfs limitations v2 Eric W. Biederman
2008-10-23 15:56 ` Eric W. Biederman
2008-10-27 19:41 ` David Miller
2008-10-27 20:19 ` Eric W. Biederman
2008-10-28 0:50 ` David Miller
[not found] ` <m1skqh4wq8.fsf-B27657KtZYmhTnVgQlOflh2eb7JE58TQ@public.gmane.org>
2008-10-28 0:50 ` David Miller
[not found] ` <20081027.124126.74749150.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2008-10-27 20:19 ` Eric W. Biederman
[not found] ` <m1fxmni9uv.fsf_-_-B27657KtZYmhTnVgQlOflh2eb7JE58TQ@public.gmane.org>
2008-10-27 19:41 ` David Miller
[not found] ` <20081022212124.GA9910-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-10-23 8:04 ` [PATCH] netns: Coexist with the sysfs limitations Benjamin Thery
[not found] ` <20081022152144.351965414-4vkkeT0zb4ZEtYaxpPmRp1aPQRlvutdw@public.gmane.org>
2008-10-22 19:59 ` [PATCH 0/4][RFC] netns: sysfs: add a netns suffix to net device sysfs entries Eric W. Biederman
2008-10-22 20:16 ` Greg KH
2008-10-22 20:32 ` [PATCH] netns: Coexist with the sysfs limitations Eric W. Biederman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=48FF8FAC.1000805@fr.ibm.com \
--to=dlezcano@fr.ibm.com \
--cc=benjamin.thery@bull.net \
--cc=containers@lists.linux-foundation.org \
--cc=davem@davemloft.net \
--cc=den@openvz.org \
--cc=ebiederm@xmission.com \
--cc=gregkh@suse.de \
--cc=htejun@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=serue@us.ibm.com \
--cc=viro@ftp.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.