btrfs: btrfs_multi_bio replaced with btrfs_bio
btrfs_bio is a bio abstraction able to split and not complete after the last bio has returned (like the old btrfs_multi_bio). Additionally, btrfs_bio tracks the mirror_num used to read data which can be used for error correction purposes. Signed-off-by: Jan Schmidt <list.btrfs@jan-o-sch.net>
This commit is contained in:
@ -1770,18 +1770,18 @@ static int btrfs_discard_extent(struct btrfs_root *root, u64 bytenr,
|
||||
{
|
||||
int ret;
|
||||
u64 discarded_bytes = 0;
|
||||
struct btrfs_multi_bio *multi = NULL;
|
||||
struct btrfs_bio *bbio = NULL;
|
||||
|
||||
|
||||
/* Tell the block device(s) that the sectors can be discarded */
|
||||
ret = btrfs_map_block(&root->fs_info->mapping_tree, REQ_DISCARD,
|
||||
bytenr, &num_bytes, &multi, 0);
|
||||
bytenr, &num_bytes, &bbio, 0);
|
||||
if (!ret) {
|
||||
struct btrfs_bio_stripe *stripe = multi->stripes;
|
||||
struct btrfs_bio_stripe *stripe = bbio->stripes;
|
||||
int i;
|
||||
|
||||
|
||||
for (i = 0; i < multi->num_stripes; i++, stripe++) {
|
||||
for (i = 0; i < bbio->num_stripes; i++, stripe++) {
|
||||
if (!stripe->dev->can_discard)
|
||||
continue;
|
||||
|
||||
@ -1800,7 +1800,7 @@ static int btrfs_discard_extent(struct btrfs_root *root, u64 bytenr,
|
||||
*/
|
||||
ret = 0;
|
||||
}
|
||||
kfree(multi);
|
||||
kfree(bbio);
|
||||
}
|
||||
|
||||
if (actual_bytes)
|
||||
|
Reference in New Issue
Block a user