diff --cc fs/fuse/inode.c index 516ea2979a90,02869edf72f3..3a5d88878335 --- 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);