mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
btrfs: raid56: reduce overhead to calculate the bio length
In rbio_update_error_bitmap(), we need to calculate the length of the rbio. As since it's called in the endio function, we can not directly grab the length from bi_iter. Currently we call bio_for_each_segment_all(), which will always return a range inside a page. But that's not necessary as we don't really care about anything inside the page. So use bio_for_each_bvec_all(), which can return a bvec across multiple continuous pages thus reduce the loops. Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
67da05b3f2
commit
c9a43aaf09
1 changed files with 1 additions and 2 deletions
|
@ -1425,10 +1425,9 @@ static void rbio_update_error_bitmap(struct btrfs_raid_bio *rbio, struct bio *bi
|
|||
int total_sector_nr = get_bio_sector_nr(rbio, bio);
|
||||
u32 bio_size = 0;
|
||||
struct bio_vec *bvec;
|
||||
struct bvec_iter_all iter_all;
|
||||
int i;
|
||||
|
||||
bio_for_each_segment_all(bvec, bio, iter_all)
|
||||
bio_for_each_bvec_all(bvec, bio, i)
|
||||
bio_size += bvec->bv_len;
|
||||
|
||||
/*
|
||||
|
|
Loading…
Add table
Reference in a new issue