The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: David Sterba <dsterba@suse.com>
To: torvalds@linux-foundation.org
Cc: David Sterba <dsterba@suse.com>,
	linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [GIT PULL] Btrfs fixes for 7.2-rc7, part 2
Date: Thu,  6 Aug 2026 22:20:45 +0200	[thread overview]
Message-ID: <cover.1786044747.git.dsterba@suse.com> (raw)

Hi,

this pull request brings back the fixup worker infrastructure. It's a
mechanism to detect pages/folios that are marked dirty without filesystem
knowledge and require COW fixup. The consequence of not doing so is
silent data loss.

The first patch covers the scenarios in detail, also reflecting folio
API port and subpage block size support added in recent years. The
original fixup worker was only for pages.

The patch is relatively big, half of the code is debugging and support
code, the rest is the core design around the detection and fix.

The second patch handles an unlikely case when there's work left during
unmount.

Commits with additional or historical info:

- b2a9f217ad3fa8 ("btrfs: remove the COW fixup mechanism")
- 25f3c5021985e8 ("Btrfs: keep pages dirty when using btrfs_writepage_fixup_worker")
- 87826df0ec36fc ("btrfs: delalloc for page dirtied out-of-band in fixup worker")
- 247e743cbe6e65 ("Btrfs: Use async helpers to deal with pages that have been improperly dirtied")

Please pull, thanks.

----------------------------------------------------------------
The following changes since commit c4c0673e4cb15b0c127e6d00732a2427bdd12c11:

  btrfs: raid56: fix scrub read assembly submitting no reads (2026-07-21 06:44:08 +0200)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git tags/for-7.2-rc6-fixup-worker-tag

for you to fetch changes up to ae2567b11c3df43861d05f856bdb3434b3961aa1:

  btrfs: flush the fixup workers during close_ctree (2026-08-04 00:59:16 +0200)

----------------------------------------------------------------
Boris Burkov (2):
      btrfs: trigger cow fixup via dirty_folio()
      btrfs: flush the fixup workers during close_ctree

 fs/btrfs/btrfs_inode.h       |   1 +
 fs/btrfs/disk-io.c           |  28 +++++-
 fs/btrfs/extent_io.c         | 113 ++++++++++++++++++++++
 fs/btrfs/fs.h                |  12 +++
 fs/btrfs/inode.c             | 217 ++++++++++++++++++++++++++++++++++++++++++-
 fs/btrfs/subpage.c           | 216 +++++++++++++++++++++++++++++++++++++++++-
 fs/btrfs/subpage.h           |  41 +++++++-
 include/trace/events/btrfs.h |  35 +++++++
 8 files changed, 651 insertions(+), 12 deletions(-)

             reply	other threads:[~2026-08-06 20:21 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-06 20:20 David Sterba [this message]
2026-08-06 20:31 ` [GIT PULL] Btrfs fixes for 7.2-rc7, part 2 pr-tracker-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1786044747.git.dsterba@suse.com \
    --to=dsterba@suse.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox