[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAJfpegstDJ6p42itTiL33tMTcbV8tUiMowpk8y9A-52_Oasvnw@mail.gmail.com>
Date: Thu, 7 Mar 2024 15:16:00 +0100
From: Miklos Szeredi <miklos@...redi.hu>
To: Stephen Rothwell <sfr@...b.auug.org.au>
Cc: Al Viro <viro@...iv.linux.org.uk>, Alessio Balsini <balsini@...roid.com>, 
	Amir Goldstein <amir73il@...il.com>, 
	Linux Kernel Mailing List <linux-kernel@...r.kernel.org>, 
	Linux Next Mailing List <linux-next@...r.kernel.org>, Miklos Szeredi <mszeredi@...hat.com>
Subject: Re: linux-next: manual merge of the fuse tree with Linus' tree
On Wed, 6 Mar 2024 at 00:34, Stephen Rothwell <sfr@...b.auug.org.au> wrote:
> diff --cc fs/fuse/inode.c
> index 516ea2979a90,02869edf72f3..000000000000
> --- a/fs/fuse/inode.c
> +++ b/fs/fuse/inode.c
> @@@ -930,14 -942,6 +942,16 @@@ void fuse_conn_init(struct fuse_conn *f
>   }
>   EXPORT_SYMBOL_GPL(fuse_conn_init);
>
>  +static void delayed_release(struct rcu_head *p)
>  +{
>  +      struct fuse_conn *fc = container_of(p, struct fuse_conn, rcu);
>  +
>  +      put_user_ns(fc->user_ns);
> ++      if (IS_ENABLED(CONFIG_FUSE_PASSTHROUGH))
> ++              fuse_backing_files_free(fc);
>  +      fc->release(fc);
>  +}
>  +
fuse_backing_files_free() doesn't need to be called after an RCU
delay, so it should be resolved like this:
diff --cc fs/fuse/inode.c
index 516ea2979a90,02869edf72f3..000000000000
--- a/fs/fuse/inode.c
+++ b/fs/fuse/inode.c
@@@ -954,7 -959,9 +966,9 @@@ void fuse_conn_put(struct fuse_conn *fc
                        WARN_ON(atomic_read(&bucket->count) != 1);
                        kfree(bucket);
                }
+               if (IS_ENABLED(CONFIG_FUSE_PASSTHROUGH))
+                       fuse_backing_files_free(fc);
 -              fc->release(fc);
 +              call_rcu(&fc->rcu, delayed_release);
        }
  }
  EXPORT_SYMBOL_GPL(fuse_conn_put);
Thanks,
Miklos
Powered by blists - more mailing lists
 
