Lines Matching refs:stripe
616 static int rbio_stripe_page_index(struct btrfs_raid_bio *rbio, int stripe, in rbio_stripe_page_index() argument
619 return stripe * rbio->stripe_npages + index; in rbio_stripe_page_index()
626 static struct page *rbio_stripe_page(struct btrfs_raid_bio *rbio, int stripe, in rbio_stripe_page() argument
629 return rbio->stripe_pages[rbio_stripe_page_index(rbio, stripe, index)]; in rbio_stripe_page()
1097 struct btrfs_bio_stripe *stripe; in rbio_add_io_page() local
1100 stripe = &rbio->bbio->stripes[stripe_nr]; in rbio_add_io_page()
1101 disk_start = stripe->physical + (page_index << PAGE_SHIFT); in rbio_add_io_page()
1104 if (!stripe->dev->bdev) in rbio_add_io_page()
1117 last->bi_disk == stripe->dev->bdev->bd_disk && in rbio_add_io_page()
1118 last->bi_partno == stripe->dev->bdev->bd_partno) { in rbio_add_io_page()
1127 btrfs_io_bio(bio)->device = stripe->dev; in rbio_add_io_page()
1129 bio_set_dev(bio, stripe->dev->bdev); in rbio_add_io_page()
1203 int stripe; in finish_rmw() local
1254 for (stripe = 0; stripe < nr_data; stripe++) { in finish_rmw()
1255 p = page_in_rbio(rbio, stripe, pagenr, 0); in finish_rmw()
1256 pointers[stripe] = kmap(p); in finish_rmw()
1262 pointers[stripe++] = kmap(p); in finish_rmw()
1272 pointers[stripe++] = kmap(p); in finish_rmw()
1283 for (stripe = 0; stripe < rbio->real_stripes; stripe++) in finish_rmw()
1284 kunmap(page_in_rbio(rbio, stripe, pagenr, 0)); in finish_rmw()
1292 for (stripe = 0; stripe < rbio->real_stripes; stripe++) { in finish_rmw()
1300 if (stripe < rbio->nr_data) { in finish_rmw()
1301 page = page_in_rbio(rbio, stripe, pagenr, 1); in finish_rmw()
1305 page = rbio_stripe_page(rbio, stripe, pagenr); in finish_rmw()
1309 page, stripe, pagenr, rbio->stripe_len); in finish_rmw()
1318 for (stripe = 0; stripe < rbio->real_stripes; stripe++) { in finish_rmw()
1319 if (!bbio->tgtdev_map[stripe]) in finish_rmw()
1329 if (stripe < rbio->nr_data) { in finish_rmw()
1330 page = page_in_rbio(rbio, stripe, pagenr, 1); in finish_rmw()
1334 page = rbio_stripe_page(rbio, stripe, pagenr); in finish_rmw()
1338 rbio->bbio->tgtdev_map[stripe], in finish_rmw()
1375 struct btrfs_bio_stripe *stripe; in find_bio_stripe() local
1380 stripe = &rbio->bbio->stripes[i]; in find_bio_stripe()
1381 if (in_range(physical, stripe->physical, rbio->stripe_len) && in find_bio_stripe()
1382 stripe->dev->bdev && in find_bio_stripe()
1383 bio->bi_disk == stripe->dev->bdev->bd_disk && in find_bio_stripe()
1384 bio->bi_partno == stripe->dev->bdev->bd_partno) { in find_bio_stripe()
1520 int stripe; in raid56_rmw_stripe() local
1536 for (stripe = 0; stripe < rbio->nr_data; stripe++) { in raid56_rmw_stripe()
1545 page = page_in_rbio(rbio, stripe, pagenr, 1); in raid56_rmw_stripe()
1549 page = rbio_stripe_page(rbio, stripe, pagenr); in raid56_rmw_stripe()
1558 stripe, pagenr, rbio->stripe_len); in raid56_rmw_stripe()
1837 int pagenr, stripe; in __raid_recover_end_io() local
1874 for (stripe = 0; stripe < rbio->real_stripes; stripe++) { in __raid_recover_end_io()
1881 (stripe == faila || stripe == failb)) { in __raid_recover_end_io()
1882 page = page_in_rbio(rbio, stripe, pagenr, 0); in __raid_recover_end_io()
1884 page = rbio_stripe_page(rbio, stripe, pagenr); in __raid_recover_end_io()
1886 pointers[stripe] = kmap(page); in __raid_recover_end_io()
1954 for (stripe = faila; stripe < rbio->nr_data - 1; stripe++) in __raid_recover_end_io()
1955 pointers[stripe] = pointers[stripe + 1]; in __raid_recover_end_io()
1979 for (stripe = 0; stripe < rbio->real_stripes; stripe++) { in __raid_recover_end_io()
1986 (stripe == faila || stripe == failb)) { in __raid_recover_end_io()
1987 page = page_in_rbio(rbio, stripe, pagenr, 0); in __raid_recover_end_io()
1989 page = rbio_stripe_page(rbio, stripe, pagenr); in __raid_recover_end_io()
2084 int stripe; in __raid56_parity_recover() local
2103 for (stripe = 0; stripe < rbio->real_stripes; stripe++) { in __raid56_parity_recover()
2104 if (rbio->faila == stripe || rbio->failb == stripe) { in __raid56_parity_recover()
2111 rbio_stripe_page(rbio, stripe, pagenr), in __raid56_parity_recover()
2112 stripe, pagenr, rbio->stripe_len); in __raid56_parity_recover()
2366 int stripe; in finish_parity_scrub() local
2425 for (stripe = 0; stripe < nr_data; stripe++) { in finish_parity_scrub()
2426 p = page_in_rbio(rbio, stripe, pagenr, 0); in finish_parity_scrub()
2427 pointers[stripe] = kmap(p); in finish_parity_scrub()
2450 for (stripe = 0; stripe < nr_data; stripe++) in finish_parity_scrub()
2451 kunmap(page_in_rbio(rbio, stripe, pagenr, 0)); in finish_parity_scrub()
2517 static inline int is_data_stripe(struct btrfs_raid_bio *rbio, int stripe) in is_data_stripe() argument
2519 if (stripe >= 0 && stripe < rbio->nr_data) in is_data_stripe()
2621 int stripe; in raid56_parity_scrub_stripe() local
2635 for (stripe = 0; stripe < rbio->real_stripes; stripe++) { in raid56_parity_scrub_stripe()
2644 page = page_in_rbio(rbio, stripe, pagenr, 1); in raid56_parity_scrub_stripe()
2648 page = rbio_stripe_page(rbio, stripe, pagenr); in raid56_parity_scrub_stripe()
2657 stripe, pagenr, rbio->stripe_len); in raid56_parity_scrub_stripe()