]> git.baikalelectronics.ru Git - kernel.git/commit
ext4: remove EA inode entry from mbcache on inode eviction
authorJan Kara <jack@suse.cz>
Tue, 12 Jul 2022 10:54:22 +0000 (12:54 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Jan 2023 10:41:55 +0000 (11:41 +0100)
commit15e56a2aa7ee2a5e8714b973afcb5973fb0a06f0
tree570e8df971c4c0286963717a185f382cce8c1f98
parentd01f3655e52569c69d27c914db00a33787853c29
ext4: remove EA inode entry from mbcache on inode eviction

[ Upstream commit 6a4a8513ca9140cb4975192b6e0db3e7f28e0d67 ]

Currently we remove EA inode from mbcache as soon as its xattr refcount
drops to zero. However there can be pending attempts to reuse the inode
and thus refcount handling code has to handle the situation when
refcount increases from zero anyway. So save some work and just keep EA
inode in mbcache until it is getting evicted. At that moment we are sure
following iget() of EA inode will fail anyway (or wait for eviction to
finish and load things from the disk again) and so removing mbcache
entry at that moment is fine and simplifies the code a bit.

CC: stable@vger.kernel.org
Fixes: 4e4b07fdbb82 ("ext4: convert to mbcache2")
Signed-off-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20220712105436.32204-3-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/ext4/inode.c
fs/ext4/xattr.c
fs/ext4/xattr.h