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 int sector_nr = calc_sector_number(stripe, bio_first_bvec_all(&bbio->bio)); in scrub_read_endio()
1109 bio_for_each_bvec_all(bvec, &bbio->bio, i) in scrub_read_endio()
1113 if (bbio->bio.bi_status) { in scrub_read_endio()
1119 bio_put(&bbio->bio); in scrub_read_endio()
1127 static void scrub_write_endio(struct btrfs_bio *bbio) in scrub_write_endio() argument
1129 struct scrub_stripe *stripe = bbio->private; in scrub_write_endio()
1132 int sector_nr = calc_sector_number(stripe, bio_first_bvec_all(&bbio->bio)); in scrub_write_endio()
1136 bio_for_each_bvec_all(bvec, &bbio->bio, i) in scrub_write_endio()
1139 if (bbio->bio.bi_status) { in scrub_write_endio()
1147 bio_put(&bbio->bio); in scrub_write_endio()
1155 struct btrfs_bio *bbio, bool dev_replace) in scrub_submit_write_bio() argument
1158 u32 bio_len = bbio->bio.bi_iter.bi_size; in scrub_submit_write_bio()
1159 u32 bio_off = (bbio->bio.bi_iter.bi_sector << SECTOR_SHIFT) - in scrub_submit_write_bio()
1164 btrfs_submit_repair_write(bbio, stripe->mirror_num, dev_replace); in scrub_submit_write_bio()
1199 struct btrfs_bio *bbio = NULL; in scrub_write_sectors() local
1211 if (bbio && sector_nr && !test_bit(sector_nr - 1, &write_bitmap)) { in scrub_write_sectors()
1212 scrub_submit_write_bio(sctx, stripe, bbio, dev_replace); in scrub_write_sectors()
1213 bbio = NULL; in scrub_write_sectors()
1215 if (!bbio) { in scrub_write_sectors()
1216 bbio = btrfs_bio_alloc(stripe->nr_sectors, REQ_OP_WRITE, in scrub_write_sectors()
1218 bbio->bio.bi_iter.bi_sector = (stripe->logical + in scrub_write_sectors()
1222 ret = bio_add_page(&bbio->bio, page, fs_info->sectorsize, pgoff); in scrub_write_sectors()
1225 if (bbio) in scrub_write_sectors()
1226 scrub_submit_write_bio(sctx, stripe, bbio, dev_replace); in scrub_write_sectors()
1652 struct btrfs_bio *bbio; in scrub_submit_initial_read() local
1662 bbio = btrfs_bio_alloc(SCRUB_STRIPE_PAGES, REQ_OP_READ, fs_info, in scrub_submit_initial_read()
1665 bbio->bio.bi_iter.bi_sector = stripe->logical >> SECTOR_SHIFT; in scrub_submit_initial_read()
1672 ret = bio_add_page(&bbio->bio, page, fs_info->sectorsize, pgoff); in scrub_submit_initial_read()
1691 btrfs_submit_bio(bbio, mirror); in scrub_submit_initial_read()