diff options
author | Filipe Manana | 2023-06-08 11:27:41 +0100 |
---|---|---|
committer | Greg Kroah-Hartman | 2023-07-19 16:22:08 +0200 |
commit | b990e3760395d346592d4e7370cefc85aa7fc597 (patch) | |
tree | 3b71dc180b8bc551f568e29c2437ef8ed8fe6119 /kernel/workqueue_internal.h | |
parent | 2445a35d05cdf24d27713b32d920a953de0f2405 (diff) |
btrfs: do not BUG_ON() on tree mod log failure at balance_level()
[ Upstream commit 39020d8abc7ec62c4de9b260e3d10d4a1c2478ce ]
At balance_level(), instead of doing a BUG_ON() in case we fail to record
tree mod log operations, do a transaction abort and return the error to
the callers. There's really no need for the BUG_ON() as we can release
all resources in this context, and we have to abort because other future
tree searches that use the tree mod log (btrfs_search_old_slot()) may get
inconsistent results if other operations modify the tree after that
failure and before the tree mod log based search.
CC: stable@vger.kernel.org # 5.4+
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'kernel/workqueue_internal.h')
0 files changed, 0 insertions, 0 deletions