btrfs: don't access the bio directly in the raid5/6 code
Just use bio_for_each_segment_all to iterate over all segments. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Omar Sandoval <osandov@fb.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
974b1adc3b
commit
80ace3e403
|
@ -1144,10 +1144,10 @@ static void validate_rbio_for_rmw(struct btrfs_raid_bio *rbio)
|
||||||
static void index_rbio_pages(struct btrfs_raid_bio *rbio)
|
static void index_rbio_pages(struct btrfs_raid_bio *rbio)
|
||||||
{
|
{
|
||||||
struct bio *bio;
|
struct bio *bio;
|
||||||
|
struct bio_vec *bvec;
|
||||||
u64 start;
|
u64 start;
|
||||||
unsigned long stripe_offset;
|
unsigned long stripe_offset;
|
||||||
unsigned long page_index;
|
unsigned long page_index;
|
||||||
struct page *p;
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
spin_lock_irq(&rbio->bio_list_lock);
|
spin_lock_irq(&rbio->bio_list_lock);
|
||||||
|
@ -1156,10 +1156,8 @@ static void index_rbio_pages(struct btrfs_raid_bio *rbio)
|
||||||
stripe_offset = start - rbio->bbio->raid_map[0];
|
stripe_offset = start - rbio->bbio->raid_map[0];
|
||||||
page_index = stripe_offset >> PAGE_SHIFT;
|
page_index = stripe_offset >> PAGE_SHIFT;
|
||||||
|
|
||||||
for (i = 0; i < bio->bi_vcnt; i++) {
|
bio_for_each_segment_all(bvec, bio, i)
|
||||||
p = bio->bi_io_vec[i].bv_page;
|
rbio->bio_pages[page_index + i] = bvec->bv_page;
|
||||||
rbio->bio_pages[page_index + i] = p;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
spin_unlock_irq(&rbio->bio_list_lock);
|
spin_unlock_irq(&rbio->bio_list_lock);
|
||||||
}
|
}
|
||||||
|
@ -1433,13 +1431,11 @@ static int fail_bio_stripe(struct btrfs_raid_bio *rbio,
|
||||||
*/
|
*/
|
||||||
static void set_bio_pages_uptodate(struct bio *bio)
|
static void set_bio_pages_uptodate(struct bio *bio)
|
||||||
{
|
{
|
||||||
|
struct bio_vec *bvec;
|
||||||
int i;
|
int i;
|
||||||
struct page *p;
|
|
||||||
|
|
||||||
for (i = 0; i < bio->bi_vcnt; i++) {
|
bio_for_each_segment_all(bvec, bio, i)
|
||||||
p = bio->bi_io_vec[i].bv_page;
|
SetPageUptodate(bvec->bv_page);
|
||||||
SetPageUptodate(p);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue