]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
fuse: continue to send FUSE_RELEASEDIR when FUSE_OPEN returns ENOSYS
authorChad Austin <chadaustin@fb.com>
Mon, 10 Dec 2018 18:54:52 +0000 (10:54 -0800)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Tue, 23 Apr 2019 15:51:48 +0000 (17:51 +0200)
commit06cdde5d23f5ffdf9b692b44e90277662be682db
treeb79c6be0d052215aa6cb5cf21628ef0b8b2a20f7
parentf52bd157607960f1602d5805a899aeb4fed83afe
fuse: continue to send FUSE_RELEASEDIR when FUSE_OPEN returns ENOSYS

BugLink: https://bugs.launchpad.net/bugs/1824553
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: 7678ac50615d ("fuse: support clients that don't implement 'open'")
Cc: <stable@vger.kernel.org> # v3.14
Signed-off-by: Chad Austin <chadaustin@fb.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
(cherry picked from commit 2e64ff154ce6ce9a8dc0f9556463916efa6ff460)
Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
Acked-by: Stefan Bader <stefan.bader@canonical.com>
Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
fs/fuse/dir.c
fs/fuse/file.c
fs/fuse/fuse_i.h