Lines Matching refs:bio
97 struct bio *bio; member
277 static void scrub_bio_end_io(struct bio *bio);
294 static void scrub_wr_bio_end_io(struct bio *bio);
435 bio_put(sbio->bio); in scrub_free_ctx()
1427 static void scrub_bio_wait_endio(struct bio *bio) in scrub_bio_wait_endio() argument
1429 struct scrub_bio_ret *ret = bio->bi_private; in scrub_bio_wait_endio()
1431 ret->error = bio->bi_error; in scrub_bio_wait_endio()
1442 struct bio *bio, in scrub_submit_raid56_bio_wait() argument
1450 bio->bi_iter.bi_sector = page->logical >> 9; in scrub_submit_raid56_bio_wait()
1451 bio->bi_private = &done; in scrub_submit_raid56_bio_wait()
1452 bio->bi_end_io = scrub_bio_wait_endio; in scrub_submit_raid56_bio_wait()
1454 ret = raid56_parity_recover(fs_info->fs_root, bio, page->recover->bbio, in scrub_submit_raid56_bio_wait()
1483 struct bio *bio; in scrub_recheck_block() local
1493 bio = btrfs_io_bio_alloc(GFP_NOFS, 1); in scrub_recheck_block()
1494 if (!bio) { in scrub_recheck_block()
1499 bio->bi_bdev = page->dev->bdev; in scrub_recheck_block()
1501 bio_add_page(bio, page->page, PAGE_SIZE, 0); in scrub_recheck_block()
1503 if (scrub_submit_raid56_bio_wait(fs_info, bio, page)) in scrub_recheck_block()
1506 bio->bi_iter.bi_sector = page->physical >> 9; in scrub_recheck_block()
1508 if (btrfsic_submit_bio_wait(READ, bio)) in scrub_recheck_block()
1512 bio_put(bio); in scrub_recheck_block()
1573 struct bio *bio; in scrub_repair_page_from_good_copy() local
1583 bio = btrfs_io_bio_alloc(GFP_NOFS, 1); in scrub_repair_page_from_good_copy()
1584 if (!bio) in scrub_repair_page_from_good_copy()
1586 bio->bi_bdev = page_bad->dev->bdev; in scrub_repair_page_from_good_copy()
1587 bio->bi_iter.bi_sector = page_bad->physical >> 9; in scrub_repair_page_from_good_copy()
1589 ret = bio_add_page(bio, page_good->page, PAGE_SIZE, 0); in scrub_repair_page_from_good_copy()
1591 bio_put(bio); in scrub_repair_page_from_good_copy()
1595 if (btrfsic_submit_bio_wait(WRITE, bio)) { in scrub_repair_page_from_good_copy()
1601 bio_put(bio); in scrub_repair_page_from_good_copy()
1604 bio_put(bio); in scrub_repair_page_from_good_copy()
1669 struct bio *bio; in scrub_add_page_to_wr_bio() local
1674 bio = sbio->bio; in scrub_add_page_to_wr_bio()
1675 if (!bio) { in scrub_add_page_to_wr_bio()
1676 bio = btrfs_io_bio_alloc(GFP_NOFS, wr_ctx->pages_per_wr_bio); in scrub_add_page_to_wr_bio()
1677 if (!bio) { in scrub_add_page_to_wr_bio()
1681 sbio->bio = bio; in scrub_add_page_to_wr_bio()
1684 bio->bi_private = sbio; in scrub_add_page_to_wr_bio()
1685 bio->bi_end_io = scrub_wr_bio_end_io; in scrub_add_page_to_wr_bio()
1686 bio->bi_bdev = sbio->dev->bdev; in scrub_add_page_to_wr_bio()
1687 bio->bi_iter.bi_sector = sbio->physical >> 9; in scrub_add_page_to_wr_bio()
1697 ret = bio_add_page(sbio->bio, spage->page, PAGE_SIZE, 0); in scrub_add_page_to_wr_bio()
1700 bio_put(sbio->bio); in scrub_add_page_to_wr_bio()
1701 sbio->bio = NULL; in scrub_add_page_to_wr_bio()
1729 WARN_ON(!sbio->bio->bi_bdev); in scrub_wr_submit()
1735 btrfsic_submit_bio(WRITE, sbio->bio); in scrub_wr_submit()
1738 static void scrub_wr_bio_end_io(struct bio *bio) in scrub_wr_bio_end_io() argument
1740 struct scrub_bio *sbio = bio->bi_private; in scrub_wr_bio_end_io()
1743 sbio->err = bio->bi_error; in scrub_wr_bio_end_io()
1744 sbio->bio = bio; in scrub_wr_bio_end_io()
1774 bio_put(sbio->bio); in scrub_wr_bio_end_io_worker()
2045 btrfsic_submit_bio(READ, sbio->bio); in scrub_submit()
2074 struct bio *bio; in scrub_add_page_to_rd_bio() local
2079 bio = sbio->bio; in scrub_add_page_to_rd_bio()
2080 if (!bio) { in scrub_add_page_to_rd_bio()
2081 bio = btrfs_io_bio_alloc(GFP_NOFS, sctx->pages_per_rd_bio); in scrub_add_page_to_rd_bio()
2082 if (!bio) in scrub_add_page_to_rd_bio()
2084 sbio->bio = bio; in scrub_add_page_to_rd_bio()
2087 bio->bi_private = sbio; in scrub_add_page_to_rd_bio()
2088 bio->bi_end_io = scrub_bio_end_io; in scrub_add_page_to_rd_bio()
2089 bio->bi_bdev = sbio->dev->bdev; in scrub_add_page_to_rd_bio()
2090 bio->bi_iter.bi_sector = sbio->physical >> 9; in scrub_add_page_to_rd_bio()
2102 ret = bio_add_page(sbio->bio, spage->page, PAGE_SIZE, 0); in scrub_add_page_to_rd_bio()
2105 bio_put(sbio->bio); in scrub_add_page_to_rd_bio()
2106 sbio->bio = NULL; in scrub_add_page_to_rd_bio()
2122 static void scrub_missing_raid56_end_io(struct bio *bio) in scrub_missing_raid56_end_io() argument
2124 struct scrub_block *sblock = bio->bi_private; in scrub_missing_raid56_end_io()
2127 if (bio->bi_error) in scrub_missing_raid56_end_io()
2183 struct bio *bio; in scrub_missing_raid56_pages() local
2204 bio = btrfs_io_bio_alloc(GFP_NOFS, 0); in scrub_missing_raid56_pages()
2205 if (!bio) in scrub_missing_raid56_pages()
2208 bio->bi_iter.bi_sector = logical >> 9; in scrub_missing_raid56_pages()
2209 bio->bi_private = sblock; in scrub_missing_raid56_pages()
2210 bio->bi_end_io = scrub_missing_raid56_end_io; in scrub_missing_raid56_pages()
2212 rbio = raid56_alloc_missing_rbio(sctx->dev_root, bio, bbio, length); in scrub_missing_raid56_pages()
2230 bio_put(bio); in scrub_missing_raid56_pages()
2328 static void scrub_bio_end_io(struct bio *bio) in scrub_bio_end_io() argument
2330 struct scrub_bio *sbio = bio->bi_private; in scrub_bio_end_io()
2333 sbio->err = bio->bi_error; in scrub_bio_end_io()
2334 sbio->bio = bio; in scrub_bio_end_io()
2365 bio_put(sbio->bio); in scrub_bio_end_io_worker()
2366 sbio->bio = NULL; in scrub_bio_end_io_worker()
2744 static void scrub_parity_bio_endio(struct bio *bio) in scrub_parity_bio_endio() argument
2746 struct scrub_parity *sparity = (struct scrub_parity *)bio->bi_private; in scrub_parity_bio_endio()
2748 if (bio->bi_error) in scrub_parity_bio_endio()
2752 bio_put(bio); in scrub_parity_bio_endio()
2763 struct bio *bio; in scrub_parity_check_and_repair() local
2781 bio = btrfs_io_bio_alloc(GFP_NOFS, 0); in scrub_parity_check_and_repair()
2782 if (!bio) in scrub_parity_check_and_repair()
2785 bio->bi_iter.bi_sector = sparity->logic_start >> 9; in scrub_parity_check_and_repair()
2786 bio->bi_private = sparity; in scrub_parity_check_and_repair()
2787 bio->bi_end_io = scrub_parity_bio_endio; in scrub_parity_check_and_repair()
2789 rbio = raid56_parity_alloc_scrub_rbio(sctx->dev_root, bio, bbio, in scrub_parity_check_and_repair()
2804 bio_put(bio); in scrub_parity_check_and_repair()
4371 struct bio *bio; in write_page_nocow() local
4383 bio = btrfs_io_bio_alloc(GFP_NOFS, 1); in write_page_nocow()
4384 if (!bio) { in write_page_nocow()
4390 bio->bi_iter.bi_size = 0; in write_page_nocow()
4391 bio->bi_iter.bi_sector = physical_for_dev_replace >> 9; in write_page_nocow()
4392 bio->bi_bdev = dev->bdev; in write_page_nocow()
4393 ret = bio_add_page(bio, page, PAGE_CACHE_SIZE, 0); in write_page_nocow()
4396 bio_put(bio); in write_page_nocow()
4401 if (btrfsic_submit_bio_wait(WRITE_SYNC, bio)) in write_page_nocow()
4404 bio_put(bio); in write_page_nocow()