Re: Loopback (dir->dir) mounting (NOT -o loop)

From: Jamie Lokier (
Date: Sat Jun 03 2000 - 09:21:34 EST

Alexander Viro wrote:
> Excuse me, but what about, like, looking at the actual data
> structures?

Sorry Alex. I was avoiding the 2.3.99 series because of the reported
broken swapping. I don't have the RAM to play with kernels that can't
swap. My understanding of your latest stuff has been from l-k and l-fs.

> Show me that "another level of indirection", please. Last time I checked,
> file->f_dentry->d_inode still took you to the inode from the struct file.
> Where, in your opinion, does this level of indirection live?

Conceptually in f_vfsmnt. Sure, it's implemented as a parallel tree
structure. But it's not well hidden. All the VFS operations on names
have to know about both trees. This is added complexity. Witness the
recent bug in open_namei() :-)

> Damn. It. Is. Not. A. Link. Could you at least look at the way it works?

If you don't make cycles, it's very much like a directory link. Except
it's not permanently on the fs, doesn't break fsck, .. actually works,
races are avoided, you can overmount /, make similar but different
trees, automount's illusion is better and it's some way towards a union

Let's just say, "like a link but better :-)"

Naturally it has some of the same security implications that directory
links have always had. The most obvious being that the security of an
fs object is often determined by its path.

And I don't like the way you simply can't detect them. (But I suppose
that's a feature, because the complaint about autofs using symlinks is
due to programs that explicitly test for symlinks and treat them
differently. That's what I meant by suggesting a semantic extension to
symlinks: symlinks that treat lstat the same as stat).

-- Jamie

ps. Thanks for the "how it really works" document.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

This archive was generated by hypermail 2b29 : Wed Jun 07 2000 - 21:00:17 EST