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

Bastien ROUCARIES
2010-08-24T09:41:14Z

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 ?

Bastien