Lines Matching refs:stripe
613 static int rbio_stripe_page_index(struct btrfs_raid_bio *rbio, int stripe, in rbio_stripe_page_index() argument
616 return stripe * rbio->stripe_npages + index; in rbio_stripe_page_index()
623 static struct page *rbio_stripe_page(struct btrfs_raid_bio *rbio, int stripe, in rbio_stripe_page() argument
626 return rbio->stripe_pages[rbio_stripe_page_index(rbio, stripe, index)]; in rbio_stripe_page()
1088 struct btrfs_bio_stripe *stripe; in rbio_add_io_page() local
1091 stripe = &rbio->bbio->stripes[stripe_nr]; in rbio_add_io_page()
1092 disk_start = stripe->physical + (page_index << PAGE_SHIFT); in rbio_add_io_page()
1095 if (!stripe->dev->bdev) in rbio_add_io_page()
1108 last->bi_disk == stripe->dev->bdev->bd_disk && in rbio_add_io_page()
1109 last->bi_partno == stripe->dev->bdev->bd_partno) { in rbio_add_io_page()
1118 btrfs_io_bio(bio)->device = stripe->dev; in rbio_add_io_page()
1120 bio_set_dev(bio, stripe->dev->bdev); in rbio_add_io_page()
1194 int stripe; in finish_rmw() local
1242 for (stripe = 0; stripe < nr_data; stripe++) { in finish_rmw()
1243 p = page_in_rbio(rbio, stripe, pagenr, 0); in finish_rmw()
1244 pointers[stripe] = kmap(p); in finish_rmw()
1250 pointers[stripe++] = kmap(p); in finish_rmw()
1260 pointers[stripe++] = kmap(p); in finish_rmw()
1271 for (stripe = 0; stripe < rbio->real_stripes; stripe++) in finish_rmw()
1272 kunmap(page_in_rbio(rbio, stripe, pagenr, 0)); in finish_rmw()
1280 for (stripe = 0; stripe < rbio->real_stripes; stripe++) { in finish_rmw()
1283 if (stripe < rbio->nr_data) { in finish_rmw()
1284 page = page_in_rbio(rbio, stripe, pagenr, 1); in finish_rmw()
1288 page = rbio_stripe_page(rbio, stripe, pagenr); in finish_rmw()
1292 page, stripe, pagenr, rbio->stripe_len); in finish_rmw()
1301 for (stripe = 0; stripe < rbio->real_stripes; stripe++) { in finish_rmw()
1302 if (!bbio->tgtdev_map[stripe]) in finish_rmw()
1307 if (stripe < rbio->nr_data) { in finish_rmw()
1308 page = page_in_rbio(rbio, stripe, pagenr, 1); in finish_rmw()
1312 page = rbio_stripe_page(rbio, stripe, pagenr); in finish_rmw()
1316 rbio->bbio->tgtdev_map[stripe], in finish_rmw()
1353 struct btrfs_bio_stripe *stripe; in find_bio_stripe() local
1358 stripe = &rbio->bbio->stripes[i]; in find_bio_stripe()
1359 if (in_range(physical, stripe->physical, rbio->stripe_len) && in find_bio_stripe()
1360 stripe->dev->bdev && in find_bio_stripe()
1361 bio->bi_disk == stripe->dev->bdev->bd_disk && in find_bio_stripe()
1362 bio->bi_partno == stripe->dev->bdev->bd_partno) { in find_bio_stripe()
1498 int stripe; in raid56_rmw_stripe() local
1514 for (stripe = 0; stripe < rbio->nr_data; stripe++) { in raid56_rmw_stripe()
1523 page = page_in_rbio(rbio, stripe, pagenr, 1); in raid56_rmw_stripe()
1527 page = rbio_stripe_page(rbio, stripe, pagenr); in raid56_rmw_stripe()
1536 stripe, pagenr, rbio->stripe_len); in raid56_rmw_stripe()
1789 int pagenr, stripe; in __raid_recover_end_io() local
1826 for (stripe = 0; stripe < rbio->real_stripes; stripe++) { in __raid_recover_end_io()
1833 (stripe == faila || stripe == failb)) { in __raid_recover_end_io()
1834 page = page_in_rbio(rbio, stripe, pagenr, 0); in __raid_recover_end_io()
1836 page = rbio_stripe_page(rbio, stripe, pagenr); in __raid_recover_end_io()
1838 pointers[stripe] = kmap(page); in __raid_recover_end_io()
1906 for (stripe = faila; stripe < rbio->nr_data - 1; stripe++) in __raid_recover_end_io()
1907 pointers[stripe] = pointers[stripe + 1]; in __raid_recover_end_io()
1931 for (stripe = 0; stripe < rbio->real_stripes; stripe++) { in __raid_recover_end_io()
1938 (stripe == faila || stripe == failb)) { in __raid_recover_end_io()
1939 page = page_in_rbio(rbio, stripe, pagenr, 0); in __raid_recover_end_io()
1941 page = rbio_stripe_page(rbio, stripe, pagenr); in __raid_recover_end_io()
2036 int stripe; in __raid56_parity_recover() local
2052 for (stripe = 0; stripe < rbio->real_stripes; stripe++) { in __raid56_parity_recover()
2053 if (rbio->faila == stripe || rbio->failb == stripe) { in __raid56_parity_recover()
2065 p = rbio_stripe_page(rbio, stripe, pagenr); in __raid56_parity_recover()
2070 rbio_stripe_page(rbio, stripe, pagenr), in __raid56_parity_recover()
2071 stripe, pagenr, rbio->stripe_len); in __raid56_parity_recover()
2326 int stripe; in finish_parity_scrub() local
2380 for (stripe = 0; stripe < nr_data; stripe++) { in finish_parity_scrub()
2381 p = page_in_rbio(rbio, stripe, pagenr, 0); in finish_parity_scrub()
2382 pointers[stripe] = kmap(p); in finish_parity_scrub()
2386 pointers[stripe++] = kmap(p_page); in finish_parity_scrub()
2393 pointers[stripe++] = kmap(q_page); in finish_parity_scrub()
2413 for (stripe = 0; stripe < nr_data; stripe++) in finish_parity_scrub()
2414 kunmap(page_in_rbio(rbio, stripe, pagenr, 0)); in finish_parity_scrub()
2478 static inline int is_data_stripe(struct btrfs_raid_bio *rbio, int stripe) in is_data_stripe() argument
2480 if (stripe >= 0 && stripe < rbio->nr_data) in is_data_stripe()
2582 int stripe; in raid56_parity_scrub_stripe() local
2596 for (stripe = 0; stripe < rbio->real_stripes; stripe++) { in raid56_parity_scrub_stripe()
2605 page = page_in_rbio(rbio, stripe, pagenr, 1); in raid56_parity_scrub_stripe()
2609 page = rbio_stripe_page(rbio, stripe, pagenr); in raid56_parity_scrub_stripe()
2618 stripe, pagenr, rbio->stripe_len); in raid56_parity_scrub_stripe()