Linux Btrfs filesystem development
 help / color / mirror / Atom feed
* [PATCH v2 0/3] btrfs: fix a UAF where btrfs_root::dirty_list is freed but still referred
@ 2026-10-08  6:26 Qu Wenruo
  2026-10-08  6:26 ` [PATCH v2 1/3] btrfs: protect dirty_cowonly_roots, switch_commits and root->dirty_list Qu Wenruo
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Qu Wenruo @ 2026-10-08  6:26 UTC (permalink / raw)
  To: linux-btrfs

The first patch is to make lock consistent when accessing
btrfs_root::dirty_list, btrfs_fs_info::dirty_cowonly_roots and
btrfs_transaction::switch_commits.

Normally it's not a big deal as the existing lock-holding callers are
also holding a trans handle, thus they can not race with transaction
committing.
But the last commit will change the cleanup timing, and Sashiko is not
happy with that, so make it more consistent and shut Sashiko up.

The second patch is an existing bug exposed by Sashiko, which also
affects the last UAF fix.

The last one is the final UAF fix for the bug reported by syzbot.

Qu Wenruo (3):
  btrfs: protect dirty_cowonly_roots, switch_commits and
    root->dirty_list
  btrfs: prevent use-after-free in btrfs_transaction::switch_commits
  btrfs: unlink btrfs_root::dirty_list during btrfs_put_root()

 fs/btrfs/disk-io.c         | 20 ++++++++++++++++++--
 fs/btrfs/free-space-tree.c |  4 ----
 fs/btrfs/qgroup.c          |  4 ----
 fs/btrfs/transaction.c     | 30 ++++++++++++++++++++++++++----
 4 files changed, 44 insertions(+), 14 deletions(-)

-- 
2.55.0


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

end of thread, other threads:[~2026-10-08  6:26 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-08  6:26 [PATCH v2 0/3] btrfs: fix a UAF where btrfs_root::dirty_list is freed but still referred Qu Wenruo
2026-10-08  6:26 ` [PATCH v2 1/3] btrfs: protect dirty_cowonly_roots, switch_commits and root->dirty_list Qu Wenruo
2026-10-08  6:26 ` [PATCH v2 2/3] btrfs: prevent use-after-free in btrfs_transaction::switch_commits Qu Wenruo
2026-10-08  6:26 ` [PATCH v2 3/3] btrfs: unlink btrfs_root::dirty_list during btrfs_put_root() Qu Wenruo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox