Btrfs: Make raid_map array be inlined in btrfs_bio structure
It can make code more simple and clear, we need not care about free bbio and raid_map together. Signed-off-by: Miao Xie <miaox@cn.fujitsu.com> Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com> Signed-off-by: Chris Mason <clm@fb.com>
This commit is contained in:
@@ -307,6 +307,12 @@ struct btrfs_bio {
|
||||
int mirror_num;
|
||||
int num_tgtdevs;
|
||||
int *tgtdev_map;
|
||||
/*
|
||||
* logical block numbers for the start of each stripe
|
||||
* The last one or two are p/q. These are sorted,
|
||||
* so raid_map[0] is the start of our full stripe
|
||||
*/
|
||||
u64 *raid_map;
|
||||
struct btrfs_bio_stripe stripes[];
|
||||
};
|
||||
|
||||
@@ -392,7 +398,8 @@ int btrfs_account_dev_extents_size(struct btrfs_device *device, u64 start,
|
||||
#define btrfs_bio_size(total_stripes, real_stripes) \
|
||||
(sizeof(struct btrfs_bio) + \
|
||||
(sizeof(struct btrfs_bio_stripe) * (total_stripes)) + \
|
||||
(sizeof(int) * (real_stripes)))
|
||||
(sizeof(int) * (real_stripes)) + \
|
||||
(sizeof(u64) * (real_stripes)))
|
||||
|
||||
int btrfs_map_block(struct btrfs_fs_info *fs_info, int rw,
|
||||
u64 logical, u64 *length,
|
||||
@@ -400,7 +407,7 @@ int btrfs_map_block(struct btrfs_fs_info *fs_info, int rw,
|
||||
int btrfs_map_sblock(struct btrfs_fs_info *fs_info, int rw,
|
||||
u64 logical, u64 *length,
|
||||
struct btrfs_bio **bbio_ret, int mirror_num,
|
||||
u64 **raid_map_ret);
|
||||
int need_raid_map);
|
||||
int btrfs_rmap_block(struct btrfs_mapping_tree *map_tree,
|
||||
u64 chunk_start, u64 physical, u64 devid,
|
||||
u64 **logical, int *naddrs, int *stripe_len);
|
||||
|
Reference in New Issue
Block a user