From: Qu Wenruo <wqu@suse.com>
To: linux-btrfs@vger.kernel.org
Subject: [PATCH v2 0/9] btrfs: prepare for variable stripe_len
Date: Wed, 21 Oct 2026 14:09:34 +1030 [thread overview]
Message-ID: <cover.1792553748.git.wqu@suse.com> (raw)
[CHANGELOG]
v2:
- Use IS_ALINGED() when possible
Mostly affecting zoned.c
- Refactor is_same_chunk_map()
Not only reduce the length of the parameter list, but also make it
easier to expand, with extra unlikely() calls.
- Refactor alloc_scrub_bbio()
Since the @private is always a scrub_stripe pointer, use scrub_stripe
as the type instead, so we can grab stripe_len without introducing a
new parameter.
All are suggested by Johannes.
This is a preparation patchset, to support a stripe_len that is not
64KiB.
This is for the future variable stripe length RAID56 feature, where
RAID56_VSL profile is allowed for data chunks, and the stripe_len can be
as small as sectorsize, meanwhile data IO are kept to be aligned to
data_size, which is power of 2, and larger than sector size.
Finally, RAID56_VSL will always have a number of devices that nr_data ==
data_size / sector_size.
So that's why we want a variable stripe_len.
This series does all the preparation, including supporting stripe_len <
PAGE_SIZE.
For now, tree-checker will still reject stripe_len != 64K, but that
limit will be removed when RAID56_VSL feature is introduced and can be
properly tested.
Qu Wenruo (9):
btrfs: reduce the width of num_stripes and sub_stripes
btrfs: load the on-disk btrfs_chunk::stripe_len
btrfs: add btrfs_io_context::stripe_len and load it
btrfs: change scrub to use stripe_len
btrfs: add a new 'stripe_len' parameter to btrfs_stripe_nr_to_offset()
btrfs: convert volumes.c and block-group.c to use map->stripe_len
btrfs: convert raid56.c to use rbio->bioc->stripe_len
btrfs: convert zoned.c to use map->stripe_len
btrfs: introduce extra limits on btrfs_chunk::stripe_len
fs/btrfs/block-group.c | 9 +--
fs/btrfs/raid56.c | 57 ++++++++++++------
fs/btrfs/raid56.h | 7 +--
fs/btrfs/scrub.c | 129 ++++++++++++++++++++++++++--------------
fs/btrfs/tree-checker.c | 13 +++-
fs/btrfs/volumes.c | 95 +++++++++++++++++++----------
fs/btrfs/volumes.h | 16 +++--
fs/btrfs/zoned.c | 56 +++++++++--------
8 files changed, 246 insertions(+), 136 deletions(-)
--
2.56.0
next reply other threads:[~2026-10-21 3:40 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-21 3:39 Qu Wenruo [this message]
2026-10-21 3:39 ` [PATCH v2 1/9] btrfs: reduce the width of num_stripes and sub_stripes Qu Wenruo
2026-10-21 3:39 ` [PATCH v2 2/9] btrfs: load the on-disk btrfs_chunk::stripe_len Qu Wenruo
2026-10-21 3:39 ` [PATCH v2 3/9] btrfs: add btrfs_io_context::stripe_len and load it Qu Wenruo
2026-10-21 3:39 ` [PATCH v2 4/9] btrfs: change scrub to use stripe_len Qu Wenruo
2026-10-21 5:58 ` Johannes Thumshirn
2026-10-21 3:39 ` [PATCH v2 5/9] btrfs: add a new 'stripe_len' parameter to btrfs_stripe_nr_to_offset() Qu Wenruo
2026-10-21 6:00 ` Johannes Thumshirn
2026-10-21 3:39 ` [PATCH v2 6/9] btrfs: convert volumes.c and block-group.c to use map->stripe_len Qu Wenruo
2026-10-21 6:01 ` Johannes Thumshirn
2026-10-21 3:39 ` [PATCH v2 7/9] btrfs: convert raid56.c to use rbio->bioc->stripe_len Qu Wenruo
2026-10-21 6:46 ` Johannes Thumshirn
2026-10-21 3:39 ` [PATCH v2 8/9] btrfs: convert zoned.c to use map->stripe_len Qu Wenruo
2026-10-21 6:47 ` Johannes Thumshirn
2026-10-21 3:39 ` [PATCH v2 9/9] btrfs: introduce extra limits on btrfs_chunk::stripe_len 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.1792553748.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 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.