diff options
| author | Qu Wenruo <[email protected]> | 2022-04-01 11:23:19 +0000 |
|---|---|---|
| committer | David Sterba <[email protected]> | 2022-05-16 15:03:14 +0000 |
| commit | eb3570607c8c7c9263005c47c71edeb12fc9fbcd (patch) | |
| tree | 527ea0ae9062b4ffa0413712452461248398dfd8 /fs/btrfs/async-thread.c | |
| parent | btrfs: raid56: introduce new cached members for btrfs_raid_bio (diff) | |
| download | kernel-eb3570607c8c7c9263005c47c71edeb12fc9fbcd.tar.gz kernel-eb3570607c8c7c9263005c47c71edeb12fc9fbcd.zip | |
btrfs: raid56: introduce btrfs_raid_bio::stripe_sectors
The new member is an array of sector_ptr pointers, they will represent
all sectors inside a full stripe (including P/Q).
They co-operate with btrfs_raid_bio::stripe_pages:
stripe_pages: | Page 0, range [0, 64K) | Page 1 ...
stripe_sectors: | | | ... | |
| | \- sector 15, page 0, pgoff=60K
| \- sector 1, page 0, pgoff=4K
\---- sector 0, page 0, pfoff=0
With such structure, we can represent subpage sectors without using
extra pages.
Here we introduce a new helper, index_stripe_sectors(), to update
stripe_sectors[] to point to correct page and pgoff.
So every time rbio::stripe_pages[] pointer gets updated, the new helper
should be called.
The following functions have to call the new helper:
- steal_rbio()
- alloc_rbio_pages()
- alloc_rbio_parity_pages()
- alloc_rbio_essential_pages()
Signed-off-by: Qu Wenruo <[email protected]>
Reviewed-by: David Sterba <[email protected]>
Signed-off-by: David Sterba <[email protected]>
Diffstat (limited to 'fs/btrfs/async-thread.c')
0 files changed, 0 insertions, 0 deletions
