Linux Btrfs filesystem development
 help / color / mirror / Atom feed
From: Qu Wenruo <wqu@suse.com>
To: linux-btrfs@vger.kernel.org
Subject: [PATCH v2 0/4] btrfs: prepare and move async csum generation out of experimental feautres
Date: Tue, 10 Nov 2026 16:42:23 +1030	[thread overview]
Message-ID: <cover.1794290876.git.wqu@suse.com> (raw)

[CHANGELOG]
v2:
- Introduce a patch to fix a potential data loss with async direct
  writes
  This is an existing bug, not only affecting the async data csum
  generation. Introduce a dedicated fix for it.

- Introduce a patch to fixx an ASSERT() false alert race
  Again an existing bug.

Sashiko exposed several problems related to previous default async csum
generation, one fix related to encoded writes is already merged.

The remaining problems are:

- Possible data loss due to fast fsync with async direct writes
  Fixed by the first patch, not only affecting async csum generation.
  Although async csum generation will make it more obvious.

- A possible ASSERT() race which can trigger false alert
  Fixed by the second patch, by moving the ASSERT() out of the workqueue
  workload.

- Potential workqueue flush problems related to endio_workers
  Fixed by the 3rd patch, also as a preparation for the incoming default
  async data csum generation.

Then we can finally enable async data csum generation by default to
improve the data write performance, and completely get rid of the old
csum offloading behavior.

Qu Wenruo (4):
  btrfs: do not allow fast fsync if there is any async dio write
  btrfs: fix an ASSERT() race with async csum generation
  btrfs: make btrfs_fs_info::workers to be a regular workqueue
  btrfs: move async data csum generation out of experimental features

 fs/btrfs/Kconfig     |   2 -
 fs/btrfs/bio.c       | 139 +------------------------------------------
 fs/btrfs/direct-io.c |  11 ++++
 fs/btrfs/disk-io.c   |  47 ++++++---------
 fs/btrfs/file-item.c |  15 ++---
 fs/btrfs/file-item.h |   2 +-
 fs/btrfs/fs.h        |  17 +-----
 fs/btrfs/super.c     |   2 +-
 8 files changed, 43 insertions(+), 192 deletions(-)

-- 
2.56.0


             reply	other threads:[~2026-11-10  6:12 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-10  6:12 Qu Wenruo [this message]
2026-11-10  6:12 ` [PATCH v2 1/4] btrfs: do not allow fast fsync if there is any async dio write Qu Wenruo
2026-11-10  7:05   ` Qu Wenruo
2026-11-10 10:01     ` Filipe Manana
2026-11-10 10:15       ` Filipe Manana
2026-11-10 21:00       ` Qu Wenruo
2026-11-10  6:12 ` [PATCH v2 2/4] btrfs: fix an ASSERT() race with async csum generation Qu Wenruo
2026-11-10  6:12 ` [PATCH v2 3/4] btrfs: make btrfs_fs_info::workers to be a regular workqueue Qu Wenruo
2026-11-10  6:12 ` [PATCH v2 4/4] btrfs: move async data csum generation out of experimental features Qu Wenruo

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.1794290876.git.wqu@suse.com \
    --to=wqu@suse.com \
    --cc=linux-btrfs@vger.kernel.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