Lines Matching refs:bbio

784 static void scrub_repair_read_endio(struct btrfs_bio *bbio)
786 struct scrub_stripe *stripe = bbio->private;
789 int sector_nr = calc_sector_number(stripe, bio_first_bvec_all(&bbio->bio));
795 bio_for_each_bvec_all(bvec, &bbio->bio, i)
798 if (bbio->bio.bi_status) {
807 bio_put(&bbio->bio);
822 struct btrfs_bio *bbio = NULL;
838 if (bbio && ((i > 0 && !test_bit(i - 1, &stripe->error_bitmap)) ||
839 bbio->bio.bi_iter.bi_size >= blocksize)) {
840 ASSERT(bbio->bio.bi_iter.bi_size);
842 btrfs_submit_bio(bbio, mirror);
845 bbio = NULL;
848 if (!bbio) {
849 bbio = btrfs_bio_alloc(stripe->nr_sectors, REQ_OP_READ,
851 bbio->bio.bi_iter.bi_sector = (stripe->logical +
855 ret = bio_add_page(&bbio->bio, page, fs_info->sectorsize, pgoff);
858 if (bbio) {
859 ASSERT(bbio->bio.bi_iter.bi_size);
861 btrfs_submit_bio(bbio, mirror);
1099 static void scrub_read_endio(struct btrfs_bio *bbio)
1101 struct scrub_stripe *stripe = bbio->private;
1103 int sector_nr = calc_sector_number(stripe, bio_first_bvec_all(&bbio->bio));
1109 bio_for_each_bvec_all(bvec, &bbio->bio, i)
1113 if (bbio->bio.bi_status) {
1119 bio_put(&bbio->bio);
1127 static void scrub_write_endio(struct btrfs_bio *bbio)
1129 struct scrub_stripe *stripe = bbio->private;
1132 int sector_nr = calc_sector_number(stripe, bio_first_bvec_all(&bbio->bio));
1136 bio_for_each_bvec_all(bvec, &bbio->bio, i)
1139 if (bbio->bio.bi_status) {
1147 bio_put(&bbio->bio);
1155 struct btrfs_bio *bbio, bool dev_replace)
1158 u32 bio_len = bbio->bio.bi_iter.bi_size;
1159 u32 bio_off = (bbio->bio.bi_iter.bi_sector << SECTOR_SHIFT) -
1164 btrfs_submit_repair_write(bbio, stripe->mirror_num, dev_replace);
1199 struct btrfs_bio *bbio = NULL;
1211 if (bbio && sector_nr && !test_bit(sector_nr - 1, &write_bitmap)) {
1212 scrub_submit_write_bio(sctx, stripe, bbio, dev_replace);
1213 bbio = NULL;
1215 if (!bbio) {
1216 bbio = btrfs_bio_alloc(stripe->nr_sectors, REQ_OP_WRITE,
1218 bbio->bio.bi_iter.bi_sector = (stripe->logical +
1222 ret = bio_add_page(&bbio->bio, page, fs_info->sectorsize, pgoff);
1225 if (bbio)
1226 scrub_submit_write_bio(sctx, stripe, bbio, dev_replace);
1652 struct btrfs_bio *bbio;
1662 bbio = btrfs_bio_alloc(SCRUB_STRIPE_PAGES, REQ_OP_READ, fs_info,
1665 bbio->bio.bi_iter.bi_sector = stripe->logical >> SECTOR_SHIFT;
1672 ret = bio_add_page(&bbio->bio, page, fs_info->sectorsize, pgoff);
1691 btrfs_submit_bio(bbio, mirror);