On Tue, 24 Aug 2010 11:41:10 +0200 Bastien ROUCARIES <roucaries.bastien@xxxxxxxxx> wrote: > On Mon, Aug 23, 2010 at 1:06 AM, Neil Brown <neilb@xxxxxxx> wrote: > > On Sat, 21 Aug 2010 01:13:52 -0600 > > Andreas Dilger <andreas.dilger@xxxxxxxxxx> wrote: > > > >> On 2010-08-20, at 18:09, Neil Brown <neilb@xxxxxxx> 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 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html