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

Andreas Dilger
2010-08-21T07:15:31Z

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.
>
> One problem is that there is no way to pass the length...
> Options:
> fragment is at most 64 bytes nul padded at the end
> fragment is hex encoded and nul terminated
> ??
>
> I think I prefer the hex encoding, but I'm hoping someone else has a better
> idea.

That makes it ugly for the kernel to stringify and parse the file handles.

How about for AT_FILE_HANDLE THE FIRST __u32 (maybe with an extra __u32 for alignment) is the length and the rest of the binary file handle follows this? In fact, doesn't the handle itself already encode the length in the header?

Cheers, Andreas