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
next 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