Lines Matching refs:bbio

783 static void scrub_repair_read_endio(struct btrfs_bio *bbio)  in scrub_repair_read_endio()  argument
785 struct scrub_stripe *stripe = bbio->private; in scrub_repair_read_endio()
788 int sector_nr = calc_sector_number(stripe, bio_first_bvec_all(&bbio->bio)); in scrub_repair_read_endio()
794 bio_for_each_bvec_all(bvec, &bbio->bio, i) in scrub_repair_read_endio()
797 if (bbio->bio.bi_status) { in scrub_repair_read_endio()
806 bio_put(&bbio->bio); in scrub_repair_read_endio()
821 struct btrfs_bio *bbio = NULL; in scrub_stripe_submit_repair_read() local
837 if (bbio && ((i > 0 && !test_bit(i - 1, &stripe->error_bitmap)) || in scrub_stripe_submit_repair_read()
838 bbio->bio.bi_iter.bi_size >= blocksize)) { in scrub_stripe_submit_repair_read()
839 ASSERT(bbio->bio.bi_iter.bi_size); in scrub_stripe_submit_repair_read()
841 btrfs_submit_bbio(bbio, mirror); in scrub_stripe_submit_repair_read()
844 bbio = NULL; in scrub_stripe_submit_repair_read()
847 if (!bbio) { in scrub_stripe_submit_repair_read()
848 bbio = btrfs_bio_alloc(stripe->nr_sectors, REQ_OP_READ, in scrub_stripe_submit_repair_read()
850 bbio->bio.bi_iter.bi_sector = (stripe->logical + in scrub_stripe_submit_repair_read()
854 ret = bio_add_page(&bbio->bio, page, fs_info->sectorsize, pgoff); in scrub_stripe_submit_repair_read()
857 if (bbio) { in scrub_stripe_submit_repair_read()
858 ASSERT(bbio->bio.bi_iter.bi_size); in scrub_stripe_submit_repair_read()
860 btrfs_submit_bbio(bbio, mirror); in scrub_stripe_submit_repair_read()
1098 static void scrub_read_endio(struct btrfs_bio *bbio) in scrub_read_endio() argument
1100 struct scrub_stripe *stripe = bbio->private; in scrub_read_endio()
1102 int sector_nr = calc_sector_number(stripe, bio_first_bvec_all(&bbio->bio)); in scrub_read_endio()
1108 bio_for_each_bvec_all(bvec, &bbio->bio, i) in scrub_read_endio()
1112 if (bbio->bio.bi_status) { in scrub_read_endio()
1118 bio_put(&bbio->bio); in scrub_read_endio()
1126 static void scrub_write_endio(struct btrfs_bio *bbio) in scrub_write_endio() argument
1128 struct scrub_stripe *stripe = bbio->private; in scrub_write_endio()
1131 int sector_nr = calc_sector_number(stripe, bio_first_bvec_all(&bbio->bio)); in scrub_write_endio()
1135 bio_for_each_bvec_all(bvec, &bbio->bio, i) in scrub_write_endio()
1138 if (bbio->bio.bi_status) { in scrub_write_endio()
1146 bio_put(&bbio->bio); in scrub_write_endio()
1154 struct btrfs_bio *bbio, bool dev_replace) in scrub_submit_write_bio() argument
1157 u32 bio_len = bbio->bio.bi_iter.bi_size; in scrub_submit_write_bio()
1158 u32 bio_off = (bbio->bio.bi_iter.bi_sector << SECTOR_SHIFT) - in scrub_submit_write_bio()
1163 btrfs_submit_repair_write(bbio, stripe->mirror_num, dev_replace); in scrub_submit_write_bio()
1198 struct btrfs_bio *bbio = NULL; in scrub_write_sectors() local
1210 if (bbio && sector_nr && !test_bit(sector_nr - 1, &write_bitmap)) { in scrub_write_sectors()
1211 scrub_submit_write_bio(sctx, stripe, bbio, dev_replace); in scrub_write_sectors()
1212 bbio = NULL; in scrub_write_sectors()
1214 if (!bbio) { in scrub_write_sectors()
1215 bbio = btrfs_bio_alloc(stripe->nr_sectors, REQ_OP_WRITE, in scrub_write_sectors()
1217 bbio->bio.bi_iter.bi_sector = (stripe->logical + in scrub_write_sectors()
1221 ret = bio_add_page(&bbio->bio, page, fs_info->sectorsize, pgoff); in scrub_write_sectors()
1224 if (bbio) in scrub_write_sectors()
1225 scrub_submit_write_bio(sctx, stripe, bbio, dev_replace); in scrub_write_sectors()
1666 struct btrfs_bio *bbio = NULL; in scrub_submit_extent_sector_read() local
1683 if (bbio && in scrub_submit_extent_sector_read()
1686 bbio->bio.bi_iter.bi_size >= stripe_len)) { in scrub_submit_extent_sector_read()
1687 ASSERT(bbio->bio.bi_iter.bi_size); in scrub_submit_extent_sector_read()
1689 btrfs_submit_bbio(bbio, mirror); in scrub_submit_extent_sector_read()
1690 bbio = NULL; in scrub_submit_extent_sector_read()
1693 if (!bbio) { in scrub_submit_extent_sector_read()
1725 bbio = btrfs_bio_alloc(stripe->nr_sectors, REQ_OP_READ, in scrub_submit_extent_sector_read()
1727 bbio->bio.bi_iter.bi_sector = logical >> SECTOR_SHIFT; in scrub_submit_extent_sector_read()
1730 __bio_add_page(&bbio->bio, page, fs_info->sectorsize, pgoff); in scrub_submit_extent_sector_read()
1733 if (bbio) { in scrub_submit_extent_sector_read()
1734 ASSERT(bbio->bio.bi_iter.bi_size); in scrub_submit_extent_sector_read()
1736 btrfs_submit_bbio(bbio, mirror); in scrub_submit_extent_sector_read()
1750 struct btrfs_bio *bbio; in scrub_submit_initial_read() local
1763 bbio = btrfs_bio_alloc(SCRUB_STRIPE_PAGES, REQ_OP_READ, fs_info, in scrub_submit_initial_read()
1766 bbio->bio.bi_iter.bi_sector = stripe->logical >> SECTOR_SHIFT; in scrub_submit_initial_read()
1773 ret = bio_add_page(&bbio->bio, page, fs_info->sectorsize, pgoff); in scrub_submit_initial_read()
1792 btrfs_submit_bbio(bbio, mirror); in scrub_submit_initial_read()