linux/fs/erofs
Sandeep Dhavale ba84bbbcd5 erofs: fix refcount on the metabuf used for inode lookup
commit 56ee7db311 upstream.

In erofs_find_target_block() when erofs_dirnamecmp() returns 0,
we do not assign the target metabuf. This causes the caller
erofs_namei()'s erofs_put_metabuf() at the end to be not effective
leaving the refcount on the page.
As the page from metabuf (buf->page) is never put, such page cannot be
migrated or reclaimed. Fix it now by putting the metabuf from
previous loop and assigning the current metabuf to target before
returning so caller erofs_namei() can do the final put as it was
intended.

Fixes: 500edd0956 ("erofs: use meta buffers for inode lookup")
Cc: <stable@vger.kernel.org> # 5.18+
Signed-off-by: Sandeep Dhavale <dhavale@google.com>
Reviewed-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Reviewed-by: Jingbo Xu <jefflexu@linux.alibaba.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Link: https://lore.kernel.org/r/20240221210348.3667795-1-dhavale@google.com
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-03-01 13:35:01 +01:00
..
compress.h erofs: simplify compression configuration parser 2024-01-25 15:35:57 -08:00
data.c mm: remove enum page_entry_size 2023-08-24 16:20:30 -07:00
decompressor_deflate.c erofs: simplify compression configuration parser 2024-01-25 15:35:57 -08:00
decompressor_lzma.c erofs: simplify compression configuration parser 2024-01-25 15:35:57 -08:00
decompressor.c erofs: fix lz4 inplace decompression 2024-01-31 16:18:49 -08:00
dir.c erofs: keep meta inode into erofs_buf 2023-04-17 01:15:50 +08:00
erofs_fs.h erofs: update on-disk format for xattr name filter 2023-08-11 12:11:44 +08:00
fscache.c erofs: avoid hardcoded blocksize for subpage block support 2023-04-17 01:15:44 +08:00
inode.c v6.6-vfs.ctime 2023-08-28 09:31:32 -07:00
internal.h erofs: simplify compression configuration parser 2024-01-25 15:35:57 -08:00
Kconfig erofs: boost negative xattr lookup with bloom filter 2023-08-11 12:11:44 +08:00
Makefile erofs: DEFLATE compression support 2023-08-11 12:11:17 +08:00
namei.c erofs: fix refcount on the metabuf used for inode lookup 2024-03-01 13:35:01 +01:00
pcpubuf.c erofs: mark z_erofs_lzma_init/erofs_pcpubuf_init w/ __init 2023-03-09 22:49:30 +08:00
super.c erofs: simplify compression configuration parser 2024-01-25 15:35:57 -08:00
sysfs.c erofs: make kobj_type structures constant 2023-02-15 08:11:26 +08:00
utils.c erofs: fix erofs_insert_workgroup() lockref usage 2023-11-20 11:59:23 +01:00
xattr.c erofs: boost negative xattr lookup with bloom filter 2023-08-11 12:11:44 +08:00
xattr.h Changes since last update: 2023-04-24 14:25:39 -07:00
zdata.c erofs: fix ztailpacking for subpage compressed blocks 2024-02-05 20:14:16 +00:00
zmap.c erofs: fix up compacted indexes for block size < 4096 2024-02-05 20:14:16 +00:00