]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
btrfs: always drop log root tree reference in btrfs_replay_log()
authorFilipe Manana <fdmanana@suse.com>
Wed, 27 Aug 2025 11:10:28 +0000 (12:10 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 2 Nov 2025 13:18:04 +0000 (22:18 +0900)
commite3eec45b91f68c819ac350aac74dc5bd49ff7a7d
treead2d9f3f05a2b4992d8876612c3e02ff8c1dfdbf
parent8e36ab6903b5856f983aa0b814f3ac55496bae36
btrfs: always drop log root tree reference in btrfs_replay_log()

[ Upstream commit 2f5b8095ea47b142c56c09755a8b1e14145a2d30 ]

Currently we have this odd behaviour:

1) At btrfs_replay_log() we drop the reference of the log root tree if
   the call to btrfs_recover_log_trees() failed;

2) But if the call to btrfs_recover_log_trees() did not fail, we don't
   drop the reference in btrfs_replay_log() - we expect that
   btrfs_recover_log_trees() does it in case it returns success.

Let's simplify this and make btrfs_replay_log() always drop the reference
on the log root tree, not only this simplifies code as it's what makes
sense since it's btrfs_replay_log() who grabbed the reference in the first
place.

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>
fs/btrfs/disk-io.c
fs/btrfs/tree-log.c