Re: [RFC PATCH v2 4/6] fuse: implementation of the FUSE_LOOKUP_HANDLE operation
From: Joanne Koong
Date: Tue Dec 16 2025 - 03:54:56 EST
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.
Thanks,
Joanne