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