Re: [PATCH -V18 04/13] vfs: Allow handle based open on symlinks

Neil Brown
2010-08-25T02:04:32Z

On Tue, 24 Aug 2010 11:41:10 +0200
Bastien ROUCARIES <roucaries.bastien@gmail.com> wrote:

> On Mon, Aug 23, 2010 at 1:06 AM, Neil Brown <neilb@suse.de> wrote:
> > On Sat, 21 Aug 2010 01:13:52 -0600
> > Andreas Dilger <andreas.dilger@oracle.com> wrote:
> >
> >> On 2010-08-20, at 18:09, Neil Brown <neilb@suse.de> wrote:
> >> > How about a new AT flag:  AT_FILE_HANDLE
> >> >
> >> > Meaning is that the 'dirfd' is used only to identify a filesystem (vfsmnt) and
> >> > the 'name' pointer actually points to a filehandle fragment interpreted in
> >> > that filesystem.
>
> Why ot creating a special file system for this kind of operation ?
> I mean a vfsmnt filesystem, with each directory on the root is a
> symlink to the root of the real vfsmnt root ?
>
> I could be even be in proc space like /proc/self/vfsmnt
>
> path_to_handle will return a relative path from this directory like
> 0x75843558/somehandle (if X is on /usr/bin/X and usr is mounted by
> filesystem 0x75843558)
> path_to_fshandle() will return 0x75843558
>
> opening file handle will be just a matter to thus open
> /proc/self/vfsmount/0x75843558/somehandle
>
> Permission will be determined by vfsmount filesystem.
>
> No need to create new syscall all te handle to filename will be handle
> by the vfsmount filesystem
>
> We could even use at existing command. The dirfd will need to be only
> /proc/self/vfsmnt (and if you need to get a fd without mounting /proc
> create a syscall to get this fd).
>
> Does sound plausible ?
>

I don't think so.

I'm not 100% certain what you are proposing, but I think the basic idea is a
virtual filesystem where giving a textual filehandle as a name gives access
to the file with that filehandle.

This could only work by creating a virtual symlink from the name to the
object in whichever filesystem - somewhat like /proc/self/fd/*.
This could be used to open the file, not to create a hard-link or read a
symlink which are two of the issues we are struggling with.

Maybe I have misunderstood you though.

NeilBrown