diff --git a/fs/fuse/OWNERS b/fs/fuse/OWNERS deleted file mode 100644 index 5ee6098fadeb..000000000000 --- a/fs/fuse/OWNERS +++ /dev/null @@ -1 +0,0 @@ -balsini@google.com diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c index 799b2449a529..3a5d88878335 100644 --- a/fs/fuse/inode.c +++ b/fs/fuse/inode.c @@ -910,7 +910,6 @@ void fuse_conn_init(struct fuse_conn *fc, struct fuse_mount *fm, memset(fc, 0, sizeof(*fc)); spin_lock_init(&fc->lock); spin_lock_init(&fc->bg_lock); - spin_lock_init(&fc->passthrough_req_lock); init_rwsem(&fc->killsb); refcount_set(&fc->count, 1); atomic_set(&fc->dev_count, 1); @@ -919,7 +918,6 @@ void fuse_conn_init(struct fuse_conn *fc, struct fuse_mount *fm, INIT_LIST_HEAD(&fc->bg_queue); INIT_LIST_HEAD(&fc->entry); INIT_LIST_HEAD(&fc->devices); - idr_init(&fc->passthrough_req); atomic_set(&fc->num_waiting, 0); fc->max_background = FUSE_DEFAULT_MAX_BACKGROUND; fc->congestion_threshold = FUSE_DEFAULT_CONGESTION_THRESHOLD; @@ -1232,7 +1230,10 @@ static void process_init_reply(struct fuse_mount *fm, struct fuse_args *args, process_init_limits(fc, arg); if (arg->minor >= 6) { - u64 flags = arg->flags | (u64) arg->flags2 << 32; + u64 flags = arg->flags; + + if (flags & FUSE_INIT_EXT) + flags |= (u64) arg->flags2 << 32; ra_pages = arg->max_readahead / PAGE_SIZE; if (flags & FUSE_ASYNC_READ) @@ -1301,12 +1302,6 @@ static void process_init_reply(struct fuse_mount *fm, struct fuse_args *args, fc->handle_killpriv_v2 = 1; fm->sb->s_flags |= SB_NOSEC; } - if (flags & FUSE_PASSTHROUGH) { - fc->passthrough = 1; - /* Prevent further stacking */ - fm->sb->s_stack_depth = - FILESYSTEM_MAX_STACK_DEPTH; - } if (flags & FUSE_SETXATTR_EXT) fc->setxattr_ext = 1; if (flags & FUSE_SECURITY_CTX) @@ -1394,8 +1389,6 @@ void fuse_send_init(struct fuse_mount *fm) if (IS_ENABLED(CONFIG_FUSE_PASSTHROUGH)) flags |= FUSE_PASSTHROUGH; - flags |= FUSE_PASSTHROUGH; - ia->in.flags = flags; ia->in.flags2 = flags >> 32; @@ -1419,21 +1412,9 @@ void fuse_send_init(struct fuse_mount *fm) } EXPORT_SYMBOL_GPL(fuse_send_init); -static int free_fuse_passthrough(int id, void *p, void *data) -{ - struct fuse_passthrough *passthrough = (struct fuse_passthrough *)p; - - fuse_passthrough_release(passthrough); - kfree(p); - - return 0; -} - void fuse_free_conn(struct fuse_conn *fc) { WARN_ON(!list_empty(&fc->devices)); - idr_for_each(&fc->passthrough_req, free_fuse_passthrough, NULL); - idr_destroy(&fc->passthrough_req); kfree(fc); } EXPORT_SYMBOL_GPL(fuse_free_conn); diff --git a/fs/fuse/virtio_fs.c b/fs/fuse/virtio_fs.c index c76e46b9dacd..322af827a232 100644 --- a/fs/fuse/virtio_fs.c +++ b/fs/fuse/virtio_fs.c @@ -1035,7 +1035,7 @@ static struct virtio_driver virtio_fs_driver = { #endif }; -static void virtio_fs_wake_forget_and_unlock(struct fuse_iqueue *fiq, bool sync) +static void virtio_fs_wake_forget_and_unlock(struct fuse_iqueue *fiq) __releases(fiq->lock) { struct fuse_forget_link *link; @@ -1070,8 +1070,7 @@ __releases(fiq->lock) kfree(link); } -static void virtio_fs_wake_interrupt_and_unlock(struct fuse_iqueue *fiq, - bool sync) +static void virtio_fs_wake_interrupt_and_unlock(struct fuse_iqueue *fiq) __releases(fiq->lock) { /* @@ -1286,8 +1285,7 @@ out: return ret; } -static void virtio_fs_wake_pending_and_unlock(struct fuse_iqueue *fiq, - bool sync) +static void virtio_fs_wake_pending_and_unlock(struct fuse_iqueue *fiq) __releases(fiq->lock) { unsigned int queue_id = VQ_REQUEST; /* TODO multiqueue */