Lines Matching defs:bbio

783 static void scrub_repair_read_endio(struct btrfs_bio *bbio)
785 struct scrub_stripe *stripe = bbio->private;
788 int sector_nr = calc_sector_number(stripe, bio_first_bvec_all(&bbio->bio));
794 bio_for_each_bvec_all(bvec, &bbio->bio, i)
797 if (bbio->bio.bi_status) {
806 bio_put(&bbio->bio);
821 struct btrfs_bio *bbio = NULL;
837 if (bbio && ((i > 0 && !test_bit(i - 1, &stripe->error_bitmap)) ||
838 bbio->bio.bi_iter.bi_size >= blocksize)) {
839 ASSERT(bbio->bio.bi_iter.bi_size);
841 btrfs_submit_bio(bbio, mirror);
844 bbio = NULL;
847 if (!bbio) {
848 bbio = btrfs_bio_alloc(stripe->nr_sectors, REQ_OP_READ,
850 bbio->bio.bi_iter.bi_sector = (stripe->logical +
854 ret = bio_add_page(&bbio->bio, page, fs_info->sectorsize, pgoff);
857 if (bbio) {
858 ASSERT(bbio->bio.bi_iter.bi_size);
860 btrfs_submit_bio(bbio, mirror);
1098 static void scrub_read_endio(struct btrfs_bio *bbio)
1100 struct scrub_stripe *stripe = bbio->private;
1102 int sector_nr = calc_sector_number(stripe, bio_first_bvec_all(&bbio->bio));
1108 bio_for_each_bvec_all(bvec, &bbio->bio, i)
1112 if (bbio->bio.bi_status) {
1118 bio_put(&bbio->bio);
1126 static void scrub_write_endio(struct btrfs_bio *bbio)
1128 struct scrub_stripe *stripe = bbio->private;
1131 int sector_nr = calc_sector_number(stripe, bio_first_bvec_all(&bbio->bio));
1135 bio_for_each_bvec_all(bvec, &bbio->bio, i)
1138 if (bbio->bio.bi_status) {
1146 bio_put(&bbio->bio);
1154 struct btrfs_bio *bbio, bool dev_replace)
1157 u32 bio_len = bbio->bio.bi_iter.bi_size;
1158 u32 bio_off = (bbio->bio.bi_iter.bi_sector << SECTOR_SHIFT) -
1163 btrfs_submit_repair_write(bbio, stripe->mirror_num, dev_replace);
1198 struct btrfs_bio *bbio = NULL;
1210 if (bbio && sector_nr && !test_bit(sector_nr - 1, &write_bitmap)) {
1211 scrub_submit_write_bio(sctx, stripe, bbio, dev_replace);
1212 bbio = NULL;
1214 if (!bbio) {
1215 bbio = btrfs_bio_alloc(stripe->nr_sectors, REQ_OP_WRITE,
1217 bbio->bio.bi_iter.bi_sector = (stripe->logical +
1221 ret = bio_add_page(&bbio->bio, page, fs_info->sectorsize, pgoff);
1224 if (bbio)
1225 scrub_submit_write_bio(sctx, stripe, bbio, dev_replace);
1655 struct btrfs_bio *bbio = NULL;
1674 if (bbio &&
1677 bbio->bio.bi_iter.bi_size >= stripe_len)) {
1678 ASSERT(bbio->bio.bi_iter.bi_size);
1680 btrfs_submit_bio(bbio, mirror);
1681 bbio = NULL;
1684 if (!bbio) {
1691 bbio = btrfs_bio_alloc(stripe->nr_sectors, REQ_OP_READ,
1693 bbio->bio.bi_iter.bi_sector = logical >> SECTOR_SHIFT;
1701 btrfs_bio_end_io(bbio,
1707 __bio_add_page(&bbio->bio, page, fs_info->sectorsize, pgoff);
1710 if (bbio) {
1711 ASSERT(bbio->bio.bi_iter.bi_size);
1713 btrfs_submit_bio(bbio, mirror);
1727 struct btrfs_bio *bbio;
1742 bbio = btrfs_bio_alloc(SCRUB_STRIPE_PAGES, REQ_OP_READ, fs_info,
1745 bbio->bio.bi_iter.bi_sector = stripe->logical >> SECTOR_SHIFT;
1752 ret = bio_add_page(&bbio->bio, page, fs_info->sectorsize, pgoff);
1771 btrfs_submit_bio(bbio, mirror);