]> www.infradead.org Git - users/jedix/linux-maple.git/commit
btrfs: do not abort transaction on failure to update log root
authorFilipe Manana <fdmanana@suse.com>
Tue, 10 Jan 2023 14:56:38 +0000 (14:56 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 24 Jan 2023 06:24:36 +0000 (07:24 +0100)
commit34fe5b527e68c7882def3ea4c590034c5b6cb106
tree2a27c8856784c9fcefe3165887d57e17b12c8215
parent23ffd7fc231aa812c48b91e88bb46f96d2edb2f3
btrfs: do not abort transaction on failure to update log root

commit 09e44868f1e03c7825ca4283256abedc95e249a3 upstream.

When syncing a log, if we fail to update a log root in the log root tree,
we are aborting the transaction if the failure was not -ENOSPC. This is
excessive because there is a chance that a transaction commit can succeed,
and therefore avoid to turn the filesystem into RO mode. All we need to be
careful about is to mark the log for a full commit, which we already do,
to make sure no one commits a super block pointing to an outdated log root
tree.

So don't abort the transaction if we fail to update a log root in the log
root tree, and log an error if the failure is not -ENOSPC, so that it does
not go completely unnoticed.

CC: stable@vger.kernel.org # 6.0+
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/btrfs/tree-log.c