[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAOQ4uxjXN0BNZaFmgs3U7g5jPmBOVV4HenJYgdfO_-6oV94ACw@mail.gmail.com>
Date: Fri, 9 Jan 2026 16:03:14 +0100
From: Amir Goldstein <amir73il@...il.com>
To: Miklos Szeredi <miklos@...redi.hu>
Cc: Luis Henriques <luis@...lia.com>, "Darrick J. Wong" <djwong@...nel.org>,
Bernd Schubert <bschubert@....com>, Kevin Chen <kchen@....com>,
Horst Birthelmer <hbirthelmer@....com>, linux-fsdevel@...r.kernel.org,
linux-kernel@...r.kernel.org, Matt Harvey <mharvey@...ptrading.com>,
kernel-dev@...lia.com
Subject: Re: [RFC PATCH v2 4/6] fuse: implementation of the FUSE_LOOKUP_HANDLE operation
On Fri, Jan 9, 2026 at 1:38 PM Miklos Szeredi <miklos@...redi.hu> wrote:
>
> On Fri, 9 Jan 2026 at 12:57, Luis Henriques <luis@...lia.com> wrote:
>
> > I've been trying to wrap my head around all the suggested changes, and
> > experimenting with a few options. Since there are some major things that
> > need to be modified, I'd like to confirm that I got them right:
> >
> > 1. In the old FUSE_LOOKUP, the args->in_args[0] will continue to use the
> > struct fuse_entry_out, which won't be changed and will continue to have
> > a static size.
>
> Yes.
>
> > 2. FUSE_LOOKUP_HANDLE will add a new out_arg, which will be dynamically
> > allocated (using your suggestion: 'args->out_var_alloc'). This will be
> > a new struct fuse_entry_handle_out, similar to fuse_entry_out, but
> > replacing the struct fuse_attr by a struct fuse_statx, and adding the
> > file handle struct.
>
> Another idea: let's simplify the interface by removing the attributes
> from the lookup reply entirely. To get back the previous
> functionality, compound requests can be used: LOOKUP_HANDLE + STATX.
What about FUSE_CREATE? FUSE_TMPFILE?
and more importantly READDIRPLUS dirents?
How do you envision the protocol extension for those if fuse_entry_handle
does not contain fuse_statx?
Thanks,
Amir.
>
> > 3. FUSE_LOOKUP_HANDLE will use the args->in_args[0] as an extension header
>
> No, extensions go after the regular request data: headers, payload,
> extension(s).
>
> We could think about changing that for uring, where it would make
> sense to put the extensions after the regular headers, but currently
> it doesn't work that way and goes into the payload section.
>
> In any case LOOKUP_HANDLE should follow the existing practice.
>
> > (FUSE_EXT_HANDLE). Note that other operations (e.g. those in function
> > create_new_entry()) will actually need to *add* an extra extension
> > header, as extension headers are already being used there.
>
> Right.
>
> > This extension header will use the new struct fuse_entry_handle_out.
>
> Why _out?
>
> It should just be a struct fuse_ext_header followed by a struct
> fuse_file_handle.
>
> Thanks,
> Miklos
Powered by blists - more mailing lists