[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.64.0702140730350.3604@woody.linux-foundation.org>
Date: Wed, 14 Feb 2007 07:37:35 -0800 (PST)
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: Andreas Gruenbacher <agruen@...e.de>
cc: linux-kernel@...r.kernel.org,
Andrew Morton <akpm@...ux-foundation.org>,
Al Viro <viro@....linux.org.uk>, linux-fsdevel@...r.kernel.org,
Tony Jones <tonyj@...e.de>, Neil Brown <neilb@...e.de>,
Christoph Hellwig <hch@....de>,
Greg Kroah-Hartman <gregkh@...e.de>,
walt <wa1ter@...ealbox.com>
Subject: Re: [PATCH] Fix d_path for lazy unmounts
On Wed, 14 Feb 2007, Andreas Gruenbacher wrote:
>
> Mountpoints are reported relative to the chroot if they are reachable from the
> chroot, and relative to the namespace they are defined in otherwise. This is
> big nonsense, but it's unclear to me how to best fix it:
Well, it's also what a traditional "pwd" implementation would do, so it's
not "nonsense" in that sense.
> - don't report unreachable mount points,
> - somehow indicate which mountpoints are reachable and which are not,
> like by prepending a question flag?
We could prepend another '/' (so that you'd have a path that starts with
"//"). That's still a legal path, but it's also somethign that even POSIX
says is valid to mean something else (eg "//ftp/.." or "//socket/.." to
escape into another namespace).
But the fact is, some things just want a path. And it's generally *better*
to get them a
- path that looks ok and starts from '/' than it is to give them
something that looks strange and doesn't start from root (because the
latter gives many many more possible attack vectors: if somebody
actually looks up the path, a bad user can much more easily fake a
relative path than fake an absolute one).
- the path we've historically always given them.
> What's the point in reporting the rootfs at all -- it's never reachable to an
> ordinary process?
All the paths are generally useful for USER INFORMATION. That's the
primary use of paths for anything but "getcwd()". And the primary use for
"getcwd()" is to do the same thing that any traditional cwd implementation
has done, except faster (and _possibly_ better, but compatibility is more
important than extensions - so the "better" is mainly an issue about
non-readable or non-executable path component that we can show, and
about being able to tell _how_ you got to a point that has multiple ways
of getting there).
Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists