Lines Matching refs:bbio

784 static void scrub_repair_read_endio(struct btrfs_bio *bbio)  in scrub_repair_read_endio()  argument
786 struct scrub_stripe *stripe = bbio->private; in scrub_repair_read_endio()
789 int sector_nr = calc_sector_number(stripe, bio_first_bvec_all(&bbio->bio)); in scrub_repair_read_endio()
795 bio_for_each_bvec_all(bvec, &bbio->bio, i) in scrub_repair_read_endio()
798 if (bbio->bio.bi_status) { in scrub_repair_read_endio()
807 bio_put(&bbio->bio); in scrub_repair_read_endio()
822 struct btrfs_bio *bbio = NULL; in scrub_stripe_submit_repair_read() local
838 if (bbio && ((i > 0 && !test_bit(i - 1, &stripe->error_bitmap)) || in scrub_stripe_submit_repair_read()
839 bbio->bio.bi_iter.bi_size >= blocksize)) { in scrub_stripe_submit_repair_read()
840 ASSERT(bbio->bio.bi_iter.bi_size); in scrub_stripe_submit_repair_read()
842 btrfs_submit_bio(bbio, mirror); in scrub_stripe_submit_repair_read()
845 bbio = NULL; in scrub_stripe_submit_repair_read()
848 if (!bbio) { in scrub_stripe_submit_repair_read()
849 bbio = btrfs_bio_alloc(stripe->nr_sectors, REQ_OP_READ, in scrub_stripe_submit_repair_read()
851 bbio->bio.bi_iter.bi_sector = (stripe->logical + in scrub_stripe_submit_repair_read()
855 ret = bio_add_page(&bbio->bio, page, fs_info->sectorsize, pgoff); in scrub_stripe_submit_repair_read()
858 if (bbio) { in scrub_stripe_submit_repair_read()
859 ASSERT(bbio->bio.bi_iter.bi_size); in scrub_stripe_submit_repair_read()
861 btrfs_submit_bio(bbio, mirror); in scrub_stripe_submit_repair_read()
1099 static void scrub_read_endio(struct btrfs_bio *bbio) in scrub_read_endio() argument
1101 struct scrub_stripe *stripe = bbio->private; in scrub_read_endio()
1103 if (bbio->bio.bi_status) { in scrub_read_endio()
1109 bio_put(&bbio->bio); in scrub_read_endio()
1117 static void scrub_write_endio(struct btrfs_bio *bbio) in scrub_write_endio() argument
1119 struct scrub_stripe *stripe = bbio->private; in scrub_write_endio()
1122 int sector_nr = calc_sector_number(stripe, bio_first_bvec_all(&bbio->bio)); in scrub_write_endio()
1126 bio_for_each_bvec_all(bvec, &bbio->bio, i) in scrub_write_endio()
1129 if (bbio->bio.bi_status) { in scrub_write_endio()
1137 bio_put(&bbio->bio); in scrub_write_endio()
1145 struct btrfs_bio *bbio, bool dev_replace) in scrub_submit_write_bio() argument
1148 u32 bio_len = bbio->bio.bi_iter.bi_size; in scrub_submit_write_bio()
1149 u32 bio_off = (bbio->bio.bi_iter.bi_sector << SECTOR_SHIFT) - in scrub_submit_write_bio()
1154 btrfs_submit_repair_write(bbio, stripe->mirror_num, dev_replace); in scrub_submit_write_bio()
1189 struct btrfs_bio *bbio = NULL; in scrub_write_sectors() local
1201 if (bbio && sector_nr && !test_bit(sector_nr - 1, &write_bitmap)) { in scrub_write_sectors()
1202 scrub_submit_write_bio(sctx, stripe, bbio, dev_replace); in scrub_write_sectors()
1203 bbio = NULL; in scrub_write_sectors()
1205 if (!bbio) { in scrub_write_sectors()
1206 bbio = btrfs_bio_alloc(stripe->nr_sectors, REQ_OP_WRITE, in scrub_write_sectors()
1208 bbio->bio.bi_iter.bi_sector = (stripe->logical + in scrub_write_sectors()
1212 ret = bio_add_page(&bbio->bio, page, fs_info->sectorsize, pgoff); in scrub_write_sectors()
1215 if (bbio) in scrub_write_sectors()
1216 scrub_submit_write_bio(sctx, stripe, bbio, dev_replace); in scrub_write_sectors()
1642 struct btrfs_bio *bbio; in scrub_submit_initial_read() local
1649 bbio = btrfs_bio_alloc(SCRUB_STRIPE_PAGES, REQ_OP_READ, fs_info, in scrub_submit_initial_read()
1653 bbio->bio.bi_iter.bi_sector = stripe->logical >> SECTOR_SHIFT; in scrub_submit_initial_read()
1657 ret = bio_add_page(&bbio->bio, stripe->pages[i], PAGE_SIZE, 0); in scrub_submit_initial_read()
1676 btrfs_submit_bio(bbio, mirror); in scrub_submit_initial_read()