All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] btrfs: fix a corruption after snapshoting a new subvolume
@ 2023-10-19 12:19 fdmanana
  2023-10-19 12:19 ` [PATCH 1/3] btrfs: fix unwritten extent buffer " fdmanana
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: fdmanana @ 2023-10-19 12:19 UTC (permalink / raw)
  To: linux-btrfs

From: Filipe Manana <fdmanana@suse.com>

Starting with kernel 6.5, we no longer commit the transaction used to
create a subvolume when we finish creating the subvolume. This behaviour
was introduced for performance reasons and done with commit 1b53e51a4a8f
("btrfs: don't commit transaction for every subvol create"). However this
allows for a corruption if we snapshot a subvolume created in the current
transaction, where basically we get a snapshot root that points to an
extent buffer that was not written. This makes attempt to read the extent
buffer later to fail, either with the infamous "parent transid verify
failed ..." error or with checksum failures.

More details on the changelog of the first patch, and the remaining patches
are just cleanups.

Filipe Manana (3):
  btrfs: fix unwritten extent buffer after snapshoting a new subvolume
  btrfs: use bool for return type of btrfs_block_can_be_shared()
  btrfs: make the logic from btrfs_block_can_be_shared() easier to read

 fs/btrfs/backref.c    | 14 +++++++++-----
 fs/btrfs/backref.h    |  3 ++-
 fs/btrfs/ctree.c      | 39 +++++++++++++++++++++++++++++----------
 fs/btrfs/ctree.h      |  5 +++--
 fs/btrfs/relocation.c |  7 ++++---
 5 files changed, 47 insertions(+), 21 deletions(-)

-- 
2.40.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-10-23 18:49 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-19 12:19 [PATCH 0/3] btrfs: fix a corruption after snapshoting a new subvolume fdmanana
2023-10-19 12:19 ` [PATCH 1/3] btrfs: fix unwritten extent buffer " fdmanana
2023-10-19 12:19 ` [PATCH 2/3] btrfs: use bool for return type of btrfs_block_can_be_shared() fdmanana
2023-10-19 13:30   ` Anand Jain
2023-10-19 12:19 ` [PATCH 3/3] btrfs: make the logic from btrfs_block_can_be_shared() easier to read fdmanana
2023-10-23 15:11 ` [PATCH 0/3] btrfs: fix a corruption after snapshoting a new subvolume Josef Bacik
2023-10-23 18:42 ` David Sterba

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.