Re: VFS deadlock ?
[Posted April 2, 2013 by mkerrisk]
From: |
| Al Viro <viro-AT-ZenIV.linux.org.uk> |
To: |
| Linus Torvalds <torvalds-AT-linux-foundation.org> |
Subject: |
| Re: VFS deadlock ? |
Date: |
| Fri, 22 Mar 2013 00:12:57 +0000 |
Message-ID: |
| <20130322001257.GH21522@ZenIV.linux.org.uk> |
Cc: |
| Dave Jones <davej-AT-redhat.com>,
Linux Kernel <linux-kernel-AT-vger.kernel.org>,
"Eric W. Biederman" <ebiederm-AT-xmission.com> |
Archive‑link: | |
Article |
On Thu, Mar 21, 2013 at 05:01:49PM -0700, Linus Torvalds wrote:
> On Thu, Mar 21, 2013 at 4:58 PM, Linus Torvalds
> <torvalds@linux-foundation.org> wrote:
> >
> > So yes, it's against the rules, and we get that deadlock right now,
> > but one solution would be to just allow this particular case. The
> > patch for the deadlock looks dead simple:
>
> It should go without saying that that whitespace-damaged patch is
> entirely untested. But especially since we need to back-port whatever
> fix, it would be good if we could make the fix be something as simple
> as this. Because I don't believe we really want to backport some big
> network-namespace reorganization.
>
> This is, of course, all assuming that hardlinked directories are ok if
> we can just guarantee the absence of loops. If there's some other
> reason why they'd be problematic, we're screwed.
See the posting upthread. We could try to kludge around that as well
(e.g. have d_ancestor() compare ->d_inode instead of dentries themselves),
but I really think it's a lousy idea only inviting further abuse.
What we should do, IMO, is to turn /proc/<pid>/net into a honest symlink -
to ../nets/<netns ID>/net. Hell, might even make it a magical symlink
instead...