All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: Hanna Czenczek <hreitz@redhat.com>
Cc: qemu-block@nongnu.org, qemu-devel@nongnu.org,
	Brian Song <hibriansong@gmail.com>,
	bernd@bsbernd.com
Subject: Re: [PATCH v4 16/24] fuse: Manually process requests (without libfuse)
Date: Thu, 26 Feb 2026 20:29:17 +0100	[thread overview]
Message-ID: <aaCfDatNHMJZsZom@redhat.com> (raw)
In-Reply-To: <20260218132633.29748-17-hreitz@redhat.com>

Am 18.02.2026 um 14:26 hat Hanna Czenczek geschrieben:
> @@ -278,6 +390,17 @@ static int mount_fuse_export(FuseExport *exp, Error **errp)
>      char *mount_opts;
>      struct fuse_args fuse_args;
>      int ret;
> +    /*
> +     * We just create the session for mounting/unmounting, no need to provide
> +     * any operations.  However, since libfuse commit 52a633a5d, we have to
> +     * provide some op struct and cannot just pass NULL (even though the commit
> +     * message ("allow passing ops as NULL") seems to imply the exact opposite,
> +     * as does the comment added to fuse_session_new_fn() ("To create a no-op
> +     * session just for mounting pass op as NULL.").
> +     * This is how said libfuse commit implements a no-op session internally, so
> +     * do it the same way.
> +     */
> +    static const struct fuse_lowlevel_ops null_ops = { 0 };
>  
>      /*
>       * Note that these mount options differ from what we would pass to a direct
> @@ -301,8 +424,8 @@ static int mount_fuse_export(FuseExport *exp, Error **errp)
>      fuse_argv[3] = NULL;
>      fuse_args = (struct fuse_args)FUSE_ARGS_INIT(3, (char **)fuse_argv);
>  
> -    exp->fuse_session = fuse_session_new(&fuse_args, &fuse_ops,
> -                                         sizeof(fuse_ops), exp);
> +    exp->fuse_session = fuse_session_new(&fuse_args, &null_ops,
> +                                         sizeof(null_ops), NULL);

Bernd, is it intentional that the external interface changed in the way
the comment explains or is this accidental breakage?

Kevin



  parent reply	other threads:[~2026-02-26 19:29 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-18 13:26 [PATCH v4 00/24] export/fuse: Use coroutines and multi-threading Hanna Czenczek
2026-02-18 13:26 ` [PATCH v4 01/24] fuse: Copy write buffer content before polling Hanna Czenczek
2026-02-18 13:26 ` [PATCH v4 02/24] fuse: Ensure init clean-up even with error_fatal Hanna Czenczek
2026-02-18 13:26 ` [PATCH v4 03/24] fuse: Remove superfluous empty line Hanna Czenczek
2026-02-18 13:26 ` [PATCH v4 04/24] fuse: Explicitly set inode ID to 1 Hanna Czenczek
2026-02-18 13:26 ` [PATCH v4 05/24] fuse: Change setup_... to mount_fuse_export() Hanna Czenczek
2026-02-18 13:26 ` [PATCH v4 06/24] fuse: Destroy session on mount_fuse_export() fail Hanna Czenczek
2026-02-18 13:26 ` [PATCH v4 07/24] fuse: Fix mount options Hanna Czenczek
2026-03-05 17:56   ` Kevin Wolf
2026-02-18 13:26 ` [PATCH v4 08/24] fuse: Set direct_io and parallel_direct_writes Hanna Czenczek
2026-02-18 13:26 ` [PATCH v4 09/24] fuse: Introduce fuse_{at,de}tach_handlers() Hanna Czenczek
2026-02-18 13:26 ` [PATCH v4 10/24] fuse: Introduce fuse_{inc,dec}_in_flight() Hanna Czenczek
2026-02-18 13:26 ` [PATCH v4 11/24] fuse: Add halted flag Hanna Czenczek
2026-02-18 13:26 ` [PATCH v4 12/24] fuse: fuse_{read,write}: Rename length to blk_len Hanna Czenczek
2026-02-18 13:26 ` [PATCH v4 13/24] iotests/308: Use conv=notrunc to test growability Hanna Czenczek
2026-02-18 13:26 ` [PATCH v4 14/24] fuse: Explicitly handle non-grow post-EOF accesses Hanna Czenczek
2026-02-18 13:26 ` [PATCH v4 15/24] block: Move qemu_fcntl_addfl() into osdep.c Hanna Czenczek
2026-02-18 13:26 ` [PATCH v4 16/24] fuse: Manually process requests (without libfuse) Hanna Czenczek
2026-02-26 19:26   ` Kevin Wolf
2026-02-26 19:29   ` Kevin Wolf [this message]
2026-02-18 13:26 ` [PATCH v4 17/24] fuse: Reduce max read size Hanna Czenczek
2026-02-18 13:26 ` [PATCH v4 18/24] fuse: Process requests in coroutines Hanna Czenczek
2026-02-18 13:26 ` [PATCH v4 19/24] block/export: Add multi-threading interface Hanna Czenczek
2026-02-18 13:26 ` [PATCH v4 20/24] iotests/307: Test multi-thread export interface Hanna Czenczek
2026-02-18 13:26 ` [PATCH v4 21/24] fuse: Make shared export state atomic Hanna Czenczek
2026-02-18 13:26 ` [PATCH v4 22/24] fuse: Implement multi-threading Hanna Czenczek
2026-02-18 13:26 ` [PATCH v4 23/24] qapi/block-export: Document FUSE's multi-threading Hanna Czenczek
2026-02-18 13:26 ` [PATCH v4 24/24] iotests/308: Add multi-threading sanity test Hanna Czenczek
2026-02-26 19:54 ` [PATCH v4 00/24] export/fuse: Use coroutines and multi-threading Kevin Wolf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aaCfDatNHMJZsZom@redhat.com \
    --to=kwolf@redhat.com \
    --cc=bernd@bsbernd.com \
    --cc=hibriansong@gmail.com \
    --cc=hreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.