Re: [RFC PATCH v2 4/6] fuse: implementation of the FUSE_LOOKUP_HANDLE operation
From: Bernd Schubert
Date: Tue Dec 16 2025 - 03:54:46 EST
On 12/16/25 09:49, Joanne Koong wrote:
> On Sat, Dec 13, 2025 at 2:14 AM Luis Henriques <luis@xxxxxxxxxx> wrote:
>>
>> The implementation of LOOKUP_HANDLE modifies the LOOKUP operation to include
>> an extra inarg: the file handle for the parent directory (if it is
>> available). Also, because fuse_entry_out now has a extra variable size
>> struct (the actual handle), it also sets the out_argvar flag to true.
>>
>> Most of the other modifications in this patch are a fallout from these
>> changes: because fuse_entry_out has been modified to include a variable size
>> struct, every operation that receives such a parameter have to take this
>> into account:
>>
>> CREATE, LINK, LOOKUP, MKDIR, MKNOD, READDIRPLUS, SYMLINK, TMPFILE
>>
>> Signed-off-by: Luis Henriques <luis@xxxxxxxxxx>
>> ---
>> fs/fuse/dev.c | 16 +++++++
>> fs/fuse/dir.c | 87 ++++++++++++++++++++++++++++++---------
>> fs/fuse/fuse_i.h | 34 +++++++++++++--
>> fs/fuse/inode.c | 69 +++++++++++++++++++++++++++----
>> fs/fuse/readdir.c | 10 ++---
>> include/uapi/linux/fuse.h | 8 ++++
>> 6 files changed, 189 insertions(+), 35 deletions(-)
>>
>
> Could you explain why the file handle size needs to be dynamically set
> by the server instead of just from the kernel-side stipulating that
> the file handle size is FUSE_HANDLE_SZ (eg 128 bytes)? It seems to me
> like that would simplify a lot of the code logic here.
It would be quite a waste if one only needs something like 12 or 16
bytes, wouldn't it? 128 is the upper limit, but most file systems won't
need that much.
Thanks,
Bernd