Lines Matching refs:bio
97 struct bio *bio; member
281 static void scrub_bio_end_io(struct bio *bio, int err);
298 static void scrub_wr_bio_end_io(struct bio *bio, int err);
430 bio_put(sbio->bio); in scrub_free_ctx()
1432 static void scrub_bio_wait_endio(struct bio *bio, int error) in scrub_bio_wait_endio() argument
1434 struct scrub_bio_ret *ret = bio->bi_private; in scrub_bio_wait_endio()
1447 struct bio *bio, in scrub_submit_raid56_bio_wait() argument
1455 bio->bi_iter.bi_sector = page->logical >> 9; in scrub_submit_raid56_bio_wait()
1456 bio->bi_private = &done; in scrub_submit_raid56_bio_wait()
1457 bio->bi_end_io = scrub_bio_wait_endio; in scrub_submit_raid56_bio_wait()
1459 ret = raid56_parity_recover(fs_info->fs_root, bio, page->recover->bbio, in scrub_submit_raid56_bio_wait()
1491 struct bio *bio; in scrub_recheck_block() local
1501 bio = btrfs_io_bio_alloc(GFP_NOFS, 1); in scrub_recheck_block()
1502 if (!bio) { in scrub_recheck_block()
1507 bio->bi_bdev = page->dev->bdev; in scrub_recheck_block()
1509 bio_add_page(bio, page->page, PAGE_SIZE, 0); in scrub_recheck_block()
1511 if (scrub_submit_raid56_bio_wait(fs_info, bio, page)) in scrub_recheck_block()
1514 bio->bi_iter.bi_sector = page->physical >> 9; in scrub_recheck_block()
1516 if (btrfsic_submit_bio_wait(READ, bio)) in scrub_recheck_block()
1520 bio_put(bio); in scrub_recheck_block()
1628 struct bio *bio; in scrub_repair_page_from_good_copy() local
1638 bio = btrfs_io_bio_alloc(GFP_NOFS, 1); in scrub_repair_page_from_good_copy()
1639 if (!bio) in scrub_repair_page_from_good_copy()
1641 bio->bi_bdev = page_bad->dev->bdev; in scrub_repair_page_from_good_copy()
1642 bio->bi_iter.bi_sector = page_bad->physical >> 9; in scrub_repair_page_from_good_copy()
1644 ret = bio_add_page(bio, page_good->page, PAGE_SIZE, 0); in scrub_repair_page_from_good_copy()
1646 bio_put(bio); in scrub_repair_page_from_good_copy()
1650 if (btrfsic_submit_bio_wait(WRITE, bio)) { in scrub_repair_page_from_good_copy()
1656 bio_put(bio); in scrub_repair_page_from_good_copy()
1659 bio_put(bio); in scrub_repair_page_from_good_copy()
1724 struct bio *bio; in scrub_add_page_to_wr_bio() local
1729 bio = sbio->bio; in scrub_add_page_to_wr_bio()
1730 if (!bio) { in scrub_add_page_to_wr_bio()
1731 bio = btrfs_io_bio_alloc(GFP_NOFS, wr_ctx->pages_per_wr_bio); in scrub_add_page_to_wr_bio()
1732 if (!bio) { in scrub_add_page_to_wr_bio()
1736 sbio->bio = bio; in scrub_add_page_to_wr_bio()
1739 bio->bi_private = sbio; in scrub_add_page_to_wr_bio()
1740 bio->bi_end_io = scrub_wr_bio_end_io; in scrub_add_page_to_wr_bio()
1741 bio->bi_bdev = sbio->dev->bdev; in scrub_add_page_to_wr_bio()
1742 bio->bi_iter.bi_sector = sbio->physical >> 9; in scrub_add_page_to_wr_bio()
1752 ret = bio_add_page(sbio->bio, spage->page, PAGE_SIZE, 0); in scrub_add_page_to_wr_bio()
1755 bio_put(sbio->bio); in scrub_add_page_to_wr_bio()
1756 sbio->bio = NULL; in scrub_add_page_to_wr_bio()
1784 WARN_ON(!sbio->bio->bi_bdev); in scrub_wr_submit()
1790 btrfsic_submit_bio(WRITE, sbio->bio); in scrub_wr_submit()
1793 static void scrub_wr_bio_end_io(struct bio *bio, int err) in scrub_wr_bio_end_io() argument
1795 struct scrub_bio *sbio = bio->bi_private; in scrub_wr_bio_end_io()
1799 sbio->bio = bio; in scrub_wr_bio_end_io()
1829 bio_put(sbio->bio); in scrub_wr_bio_end_io_worker()
2091 if (!sbio->bio->bi_bdev) { in scrub_submit()
2101 bio_endio(sbio->bio, -EIO); in scrub_submit()
2103 btrfsic_submit_bio(READ, sbio->bio); in scrub_submit()
2133 struct bio *bio; in scrub_add_page_to_rd_bio() local
2138 bio = sbio->bio; in scrub_add_page_to_rd_bio()
2139 if (!bio) { in scrub_add_page_to_rd_bio()
2140 bio = btrfs_io_bio_alloc(GFP_NOFS, sctx->pages_per_rd_bio); in scrub_add_page_to_rd_bio()
2141 if (!bio) in scrub_add_page_to_rd_bio()
2143 sbio->bio = bio; in scrub_add_page_to_rd_bio()
2146 bio->bi_private = sbio; in scrub_add_page_to_rd_bio()
2147 bio->bi_end_io = scrub_bio_end_io; in scrub_add_page_to_rd_bio()
2148 bio->bi_bdev = sbio->dev->bdev; in scrub_add_page_to_rd_bio()
2149 bio->bi_iter.bi_sector = sbio->physical >> 9; in scrub_add_page_to_rd_bio()
2161 ret = bio_add_page(sbio->bio, spage->page, PAGE_SIZE, 0); in scrub_add_page_to_rd_bio()
2164 bio_put(sbio->bio); in scrub_add_page_to_rd_bio()
2165 sbio->bio = NULL; in scrub_add_page_to_rd_bio()
2263 static void scrub_bio_end_io(struct bio *bio, int err) in scrub_bio_end_io() argument
2265 struct scrub_bio *sbio = bio->bi_private; in scrub_bio_end_io()
2269 sbio->bio = bio; in scrub_bio_end_io()
2300 bio_put(sbio->bio); in scrub_bio_end_io_worker()
2301 sbio->bio = NULL; in scrub_bio_end_io_worker()
2665 static void scrub_parity_bio_endio(struct bio *bio, int error) in scrub_parity_bio_endio() argument
2667 struct scrub_parity *sparity = (struct scrub_parity *)bio->bi_private; in scrub_parity_bio_endio()
2676 bio_put(bio); in scrub_parity_bio_endio()
2682 struct bio *bio; in scrub_parity_check_and_repair() local
2700 bio = btrfs_io_bio_alloc(GFP_NOFS, 0); in scrub_parity_check_and_repair()
2701 if (!bio) in scrub_parity_check_and_repair()
2704 bio->bi_iter.bi_sector = sparity->logic_start >> 9; in scrub_parity_check_and_repair()
2705 bio->bi_private = sparity; in scrub_parity_check_and_repair()
2706 bio->bi_end_io = scrub_parity_bio_endio; in scrub_parity_check_and_repair()
2708 rbio = raid56_parity_alloc_scrub_rbio(sctx->dev_root, bio, bbio, in scrub_parity_check_and_repair()
2724 bio_put(bio); in scrub_parity_check_and_repair()
4193 struct bio *bio; in write_page_nocow() local
4205 bio = btrfs_io_bio_alloc(GFP_NOFS, 1); in write_page_nocow()
4206 if (!bio) { in write_page_nocow()
4212 bio->bi_iter.bi_size = 0; in write_page_nocow()
4213 bio->bi_iter.bi_sector = physical_for_dev_replace >> 9; in write_page_nocow()
4214 bio->bi_bdev = dev->bdev; in write_page_nocow()
4215 ret = bio_add_page(bio, page, PAGE_CACHE_SIZE, 0); in write_page_nocow()
4218 bio_put(bio); in write_page_nocow()
4223 if (btrfsic_submit_bio_wait(WRITE_SYNC, bio)) in write_page_nocow()
4226 bio_put(bio); in write_page_nocow()