[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAGnkfhwKBaqE72A+0J-hLy_aWXvXWhW+tdvzOYJamM3V4iGiXA@mail.gmail.com>
Date: Sat, 29 Jun 2019 23:45:57 +0200
From: Matteo Croce <mcroce@...hat.com>
To: David Howells <dhowells@...hat.com>
Cc: Nicolas Dichtel <nicolas.dichtel@...nd.com>,
Alexander Aring <aring@...atatu.com>,
netdev <netdev@...r.kernel.org>, linux-fsdevel@...r.kernel.org,
kernel@...atatu.com
Subject: Re: [RFC iproute2 1/1] ip: netns: add mounted state file for each netns
On Fri, Jun 28, 2019 at 7:06 PM Matteo Croce <mcroce@...hat.com> wrote:
>
> On Fri, Jun 28, 2019 at 6:27 PM David Howells <dhowells@...hat.com> wrote:
> >
> > Nicolas Dichtel <nicolas.dichtel@...nd.com> wrote:
> >
> > > David Howells was working on a mount notification mechanism:
> > > https://lwn.net/Articles/760714/
> > > https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/log/?h=notifications
> > >
> > > I don't know what is the status of this series.
> >
> > It's still alive. I just posted a new version on it. I'm hoping, possibly
> > futiley, to get it in in this merge window.
> >
> > David
>
> Hi all,
>
> this could cause a clash if I create a netns with name ending with .mounted.
>
> $ sudo ip/ip netns add ns1.mounted
> $ sudo ip/ip netns add ns1
> Cannot create namespace file "/var/run/netns/ns1.mounted": File exists
> Cannot remove namespace file "/var/run/netns/ns1.mounted": Device or
> resource busy
>
> If you want to go along this road, please either:
> - disallow netns creation with names ending with .mounted
> - or properly document it in the manpage
>
> Regards,
> --
> Matteo Croce
> per aspera ad upstream
BTW, this breaks the namespace listing:
# ip netns add test
# ip netns list
Error: Peer netns reference is invalid.
Error: Peer netns reference is invalid.
test.mounted
test
A better choice IMHO could be to create a temporary file before the
placeholder, and delete it after the bind mount, so an inotify watcher
can listen for the delete event.
For example, when creating the namespace "foo":
- create /var/run/netns/.foo.mounting
- create /var/run/netns/foo
- bind mount from /proc/.. to /var/run/netns/foo
- remove /var/run/netns/.foo.mounting
and exclude .*.mounting from the netns listing
Or, announce netns creation/deletion in some other way (dbus?).
Regards,
--
Matteo Croce
per aspera ad upstream
Powered by blists - more mailing lists