Ubuntu-focal-kernel/fs/fuse
ruanmeisi 2f4210c10a fuse: nlookup missing decrement in fuse_direntplus_link
BugLink: https://bugs.launchpad.net/bugs/2040284

commit b8bd342d50cbf606666488488f9fea374aceb2d5 upstream.

During our debugging of glusterfs, we found an Assertion failed error:
inode_lookup >= nlookup, which was caused by the nlookup value in the
kernel being greater than that in the FUSE file system.

The issue was introduced by fuse_direntplus_link, where in the function,
fuse_iget increments nlookup, and if d_splice_alias returns failure,
fuse_direntplus_link returns failure without decrementing nlookup
https://github.com/gluster/glusterfs/pull/4081

Signed-off-by: ruanmeisi <ruan.meisi@zte.com.cn>
Fixes: 0b05b18381 ("fuse: implement NFS-like readdirplus support")
Cc: <stable@vger.kernel.org> # v3.9
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Roxana Nicolescu <roxana.nicolescu@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
2023-10-30 11:42:20 +01:00
..
Kconfig
Makefile
acl.c fuse: fix bad inode 2021-02-19 16:43:33 +01:00
control.c treewide: Remove uninitialized_var() usage 2023-08-09 12:25:41 +02:00
cuse.c treewide: Remove uninitialized_var() usage 2023-08-09 12:25:41 +02:00
dev.c fuse: fix pipe buffer lifetime for direct_io 2022-05-20 15:17:48 +02:00
dir.c fuse: revalidate: don't invalidate if interrupted 2023-10-02 12:12:14 +02:00
file.c treewide: Remove uninitialized_var() usage 2023-08-09 12:25:41 +02:00
fuse_i.h fuse: fix pipe buffer lifetime for direct_io 2022-05-20 15:17:48 +02:00
inode.c fuse: limit nsec 2022-10-17 15:00:17 +02:00
readdir.c fuse: nlookup missing decrement in fuse_direntplus_link 2023-10-30 11:42:20 +01:00
virtio_fs.c virtiofs: fix memory leak in virtio_fs_probe() 2021-05-19 10:59:46 +02:00
xattr.c fuse: fix bad inode 2021-02-19 16:43:33 +01:00