linux/fs/fuse
Chad Austin 99c2b33803 fuse: continue to send FUSE_RELEASEDIR when FUSE_OPEN returns ENOSYS
commit 2e64ff154c upstream.

When FUSE_OPEN returns ENOSYS, the no_open bit is set on the connection.

Because the FUSE_RELEASE and FUSE_RELEASEDIR paths share code, this
incorrectly caused the FUSE_RELEASEDIR request to be dropped and never sent
to userspace.

Pass an isdir bool to distinguish between FUSE_RELEASE and FUSE_RELEASEDIR
inside of fuse_file_put.

Fixes: 7678ac5061 ("fuse: support clients that don't implement 'open'")
Signed-off-by: Chad Austin <chadaustin@fb.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
History 2019-02-11 17:54:24 +00:00
..
control.c fuse: fix control dir setup and teardown 2018-11-20 18:05:06 +00:00
cuse.c fuse: flush requests on umount 2018-12-16 22:08:25 +00:00
dev.c fuse: fix leaked notify reply 2019-02-11 17:53:56 +00:00
dir.c fuse: continue to send FUSE_RELEASEDIR when FUSE_OPEN returns ENOSYS 2019-02-11 17:54:24 +00:00
file.c fuse: continue to send FUSE_RELEASEDIR when FUSE_OPEN returns ENOSYS 2019-02-11 17:54:24 +00:00
fuse_i.h fuse: continue to send FUSE_RELEASEDIR when FUSE_OPEN returns ENOSYS 2019-02-11 17:54:24 +00:00
inode.c fuse: Fix oops at process_init_reply() 2018-12-16 22:08:26 +00:00
Kconfig fuse: Move CUSE Kconfig entry from fs/Kconfig into fs/fuse/Kconfig 2013-01-17 13:08:45 +01:00
Makefile CUSE: implement CUSE - Character device in Userspace 2009-06-09 11:24:11 +02:00