mirror of
https://github.com/kdave/btrfs-progs
synced 2025-05-06 01:47:56 +00:00
btrfs-progs: Move chunk stripe size calculation function to volumes.h
Signed-off-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
f174972d2d
commit
2ac42077c2
22
check/main.c
22
check/main.c
@ -7638,28 +7638,6 @@ repair_abort:
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
u64 calc_stripe_length(u64 type, u64 length, int num_stripes)
|
|
||||||
{
|
|
||||||
u64 stripe_size;
|
|
||||||
|
|
||||||
if (type & BTRFS_BLOCK_GROUP_RAID0) {
|
|
||||||
stripe_size = length;
|
|
||||||
stripe_size /= num_stripes;
|
|
||||||
} else if (type & BTRFS_BLOCK_GROUP_RAID10) {
|
|
||||||
stripe_size = length * 2;
|
|
||||||
stripe_size /= num_stripes;
|
|
||||||
} else if (type & BTRFS_BLOCK_GROUP_RAID5) {
|
|
||||||
stripe_size = length;
|
|
||||||
stripe_size /= (num_stripes - 1);
|
|
||||||
} else if (type & BTRFS_BLOCK_GROUP_RAID6) {
|
|
||||||
stripe_size = length;
|
|
||||||
stripe_size /= (num_stripes - 2);
|
|
||||||
} else {
|
|
||||||
stripe_size = length;
|
|
||||||
}
|
|
||||||
return stripe_size;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check the chunk with its block group/dev list ref:
|
* Check the chunk with its block group/dev list ref:
|
||||||
* Return 0 if all refs seems valid.
|
* Return 0 if all refs seems valid.
|
||||||
|
22
volumes.h
22
volumes.h
@ -209,6 +209,28 @@ static inline int check_crossing_stripes(struct btrfs_fs_info *fs_info,
|
|||||||
(bg_offset + len - 1) / BTRFS_STRIPE_LEN);
|
(bg_offset + len - 1) / BTRFS_STRIPE_LEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline u64 calc_stripe_length(u64 type, u64 length, int num_stripes)
|
||||||
|
{
|
||||||
|
u64 stripe_size;
|
||||||
|
|
||||||
|
if (type & BTRFS_BLOCK_GROUP_RAID0) {
|
||||||
|
stripe_size = length;
|
||||||
|
stripe_size /= num_stripes;
|
||||||
|
} else if (type & BTRFS_BLOCK_GROUP_RAID10) {
|
||||||
|
stripe_size = length * 2;
|
||||||
|
stripe_size /= num_stripes;
|
||||||
|
} else if (type & BTRFS_BLOCK_GROUP_RAID5) {
|
||||||
|
stripe_size = length;
|
||||||
|
stripe_size /= (num_stripes - 1);
|
||||||
|
} else if (type & BTRFS_BLOCK_GROUP_RAID6) {
|
||||||
|
stripe_size = length;
|
||||||
|
stripe_size /= (num_stripes - 2);
|
||||||
|
} else {
|
||||||
|
stripe_size = length;
|
||||||
|
}
|
||||||
|
return stripe_size;
|
||||||
|
}
|
||||||
|
|
||||||
int __btrfs_map_block(struct btrfs_fs_info *fs_info, int rw,
|
int __btrfs_map_block(struct btrfs_fs_info *fs_info, int rw,
|
||||||
u64 logical, u64 *length, u64 *type,
|
u64 logical, u64 *length, u64 *type,
|
||||||
struct btrfs_multi_bio **multi_ret, int mirror_num,
|
struct btrfs_multi_bio **multi_ret, int mirror_num,
|
||||||
|
Loading…
Reference in New Issue
Block a user