mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 12:11:40 +00:00
btrfs: factor out stripe length calculation into a helper
Currently there are two locations which need to calculate the real length of a stripe (which can be at the end of a chunk, and the chunk size may not always be 64K aligned). Factor them into a helper as we're going to have a third user soon. Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
b8e947e9f6
commit
33eb1e5db3
@ -1648,14 +1648,20 @@ static void scrub_reset_stripe(struct scrub_stripe *stripe)
|
||||
}
|
||||
}
|
||||
|
||||
static u32 stripe_length(const struct scrub_stripe *stripe)
|
||||
{
|
||||
ASSERT(stripe->bg);
|
||||
|
||||
return min(BTRFS_STRIPE_LEN,
|
||||
stripe->bg->start + stripe->bg->length - stripe->logical);
|
||||
}
|
||||
|
||||
static void scrub_submit_extent_sector_read(struct scrub_ctx *sctx,
|
||||
struct scrub_stripe *stripe)
|
||||
{
|
||||
struct btrfs_fs_info *fs_info = stripe->bg->fs_info;
|
||||
struct btrfs_bio *bbio = NULL;
|
||||
unsigned int nr_sectors = min(BTRFS_STRIPE_LEN, stripe->bg->start +
|
||||
stripe->bg->length - stripe->logical) >>
|
||||
fs_info->sectorsize_bits;
|
||||
unsigned int nr_sectors = stripe_length(stripe) >> fs_info->sectorsize_bits;
|
||||
u64 stripe_len = BTRFS_STRIPE_LEN;
|
||||
int mirror = stripe->mirror_num;
|
||||
int i;
|
||||
@ -1729,9 +1735,7 @@ static void scrub_submit_initial_read(struct scrub_ctx *sctx,
|
||||
{
|
||||
struct btrfs_fs_info *fs_info = sctx->fs_info;
|
||||
struct btrfs_bio *bbio;
|
||||
unsigned int nr_sectors = min(BTRFS_STRIPE_LEN, stripe->bg->start +
|
||||
stripe->bg->length - stripe->logical) >>
|
||||
fs_info->sectorsize_bits;
|
||||
unsigned int nr_sectors = stripe_length(stripe) >> fs_info->sectorsize_bits;
|
||||
int mirror = stripe->mirror_num;
|
||||
|
||||
ASSERT(stripe->bg);
|
||||
|
Loading…
Reference in New Issue
Block a user