On Tue, Mar 5, 2024 at 2:43 PM Miklos Szeredi <miklos@xxxxxxxxxx> wrote: > > On Mon, 4 Mar 2024 at 15:36, Amir Goldstein <amir73il@xxxxxxxxx> wrote: > > > Note that fuse_backing_files_free() calls > > fuse_backing_id_free() => fuse_backing_free() => kfree_rcu() > > > > Should we move fuse_backing_files_free() into > > fuse_conn_put() above fuse_dax_conn_free()? > > > > That will avoid the merge conflict and still be correct. no? > > Looks like a good cleanup. > > Force-pushed to fuse.git#for-next. > FYI, the version that you pushed will generate a minor conflict with } - fc->release(fc); + call_rcu(&fc->rcu, delayed_release); } } EXPORT_SYMBOL_GPL(fuse_conn_put); If you move fuse_backing_files_free() to the start of the function, I think merge conflict will be avoided: void fuse_conn_put(struct fuse_conn *fc) { if (refcount_dec_and_test(&fc->count)) { struct fuse_iqueue *fiq = &fc->iq; struct fuse_sync_bucket *bucket; + if (IS_ENABLED(CONFIG_FUSE_PASSTHROUGH)) + fuse_backing_files_free(fc); if (IS_ENABLED(CONFIG_FUSE_DAX)) fuse_dax_conn_free(fc); Thanks, Amir.