mbcache: automatically delete entries from cache on freeing
authorJan Kara <jack@suse.cz>
Tue, 12 Jul 2022 10:54:29 +0000 (12:54 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Jan 2023 10:59:07 +0000 (11:59 +0100)
commita6e4094faf3cc192795d19bed2a6e6e9763f93a2
tree0afd4647326720b0f1fdf9cbfbe9e9b347d337d4
parent187254912971c9e1154e9b0bd3516ecc05d8dbe5
mbcache: automatically delete entries from cache on freeing

[ Upstream commit 307af6c879377c1c63e71cbdd978201f9c7ee8df ]

Use the fact that entries with elevated refcount are not removed from
the hash and just move removal of the entry from the hash to the entry
freeing time. When doing this we also change the generic code to hold
one reference to the cache entry, not two of them, which makes code
somewhat more obvious.

Signed-off-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20220712105436.32204-10-jack@suse.cz
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Stable-dep-of: a44e84a9b776 ("ext4: fix deadlock due to mbcache entry corruption")
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/mbcache.c
include/linux/mbcache.h