Lines Matching defs:bio_ctrl

108 static void submit_one_bio(struct btrfs_bio_ctrl *bio_ctrl)
110 struct btrfs_bio *bbio = bio_ctrl->bbio;
119 bio_ctrl->compress_type != BTRFS_COMPRESS_NONE)
125 bio_ctrl->bbio = NULL;
129 * Submit or fail the current bio in the bio_ctrl structure.
131 static void submit_write_bio(struct btrfs_bio_ctrl *bio_ctrl, int ret)
133 struct btrfs_bio *bbio = bio_ctrl->bbio;
142 bio_ctrl->bbio = NULL;
144 submit_one_bio(bio_ctrl);
711 static bool btrfs_bio_is_contig(struct btrfs_bio_ctrl *bio_ctrl,
715 struct bio *bio = &bio_ctrl->bbio->bio;
719 if (bio_ctrl->compress_type != BTRFS_COMPRESS_NONE) {
744 struct btrfs_bio_ctrl *bio_ctrl,
750 bbio = btrfs_bio_alloc(BIO_MAX_VECS, bio_ctrl->opf, fs_info,
751 bio_ctrl->end_io_func, NULL);
755 bio_ctrl->bbio = bbio;
756 bio_ctrl->len_to_oe_boundary = U32_MAX;
759 if (bio_ctrl->wbc) {
764 bio_ctrl->len_to_oe_boundary = min_t(u32, U32_MAX,
777 wbc_init_bio(bio_ctrl->wbc, &bbio->bio);
788 * The will either add the page into the existing @bio_ctrl->bbio, or allocate a
789 * new one in @bio_ctrl->bbio.
791 * @bio_ctrl->mirror_num.
793 static void submit_extent_page(struct btrfs_bio_ctrl *bio_ctrl,
800 ASSERT(bio_ctrl->end_io_func);
802 if (bio_ctrl->bbio &&
803 !btrfs_bio_is_contig(bio_ctrl, page, disk_bytenr, pg_offset))
804 submit_one_bio(bio_ctrl);
810 if (!bio_ctrl->bbio) {
811 alloc_new_bio(inode, bio_ctrl, disk_bytenr,
816 if (len > bio_ctrl->len_to_oe_boundary) {
817 ASSERT(bio_ctrl->compress_type == BTRFS_COMPRESS_NONE);
819 len = bio_ctrl->len_to_oe_boundary;
822 if (bio_add_page(&bio_ctrl->bbio->bio, page, len, pg_offset) != len) {
824 submit_one_bio(bio_ctrl);
828 if (bio_ctrl->wbc)
829 wbc_account_cgroup_owner(bio_ctrl->wbc, page, len);
856 if (bio_ctrl->len_to_oe_boundary != U32_MAX)
857 bio_ctrl->len_to_oe_boundary -= len;
860 if (bio_ctrl->len_to_oe_boundary == 0)
861 submit_one_bio(bio_ctrl);
973 struct btrfs_bio_ctrl *bio_ctrl, u64 *prev_em_start)
1005 bio_ctrl->end_io_func = end_bio_extent_readpage;
1108 if (bio_ctrl->compress_type != compress_type) {
1109 submit_one_bio(bio_ctrl);
1110 bio_ctrl->compress_type = compress_type;
1114 submit_one_bio(bio_ctrl);
1115 submit_extent_page(bio_ctrl, disk_bytenr, page, iosize,
1130 struct btrfs_bio_ctrl bio_ctrl = { .opf = REQ_OP_READ };
1135 ret = btrfs_do_readpage(page, NULL, &bio_ctrl, NULL);
1140 submit_one_bio(&bio_ctrl);
1147 struct btrfs_bio_ctrl *bio_ctrl,
1156 btrfs_do_readpage(pages[index], em_cached, bio_ctrl,
1288 struct btrfs_bio_ctrl *bio_ctrl,
1304 redirty_page_for_writepage(bio_ctrl->wbc, page);
1309 bio_ctrl->end_io_func = end_bio_extent_writepage;
1383 submit_extent_page(bio_ctrl, disk_bytenr, page, iosize,
1411 static int __extent_writepage(struct page *page, struct btrfs_bio_ctrl *bio_ctrl)
1422 trace___extent_writepage(page, inode, bio_ctrl->wbc);
1441 ret = writepage_delalloc(BTRFS_I(inode), page, bio_ctrl->wbc);
1447 ret = __extent_writepage_io(BTRFS_I(inode), page, bio_ctrl, i_size, &nr);
1451 bio_ctrl->wbc->nr_to_write--;
1989 * @bio_ctrl: holds context for the write, namely the bio
2000 struct btrfs_bio_ctrl *bio_ctrl)
2002 struct writeback_control *wbc = bio_ctrl->wbc;
2082 submit_write_bio(bio_ctrl, 0);
2099 submit_write_bio(bio_ctrl, 0);
2109 ret = __extent_writepage(&folio->page, bio_ctrl);
2140 submit_write_bio(bio_ctrl, 0);
2167 struct btrfs_bio_ctrl bio_ctrl = {
2173 bio_ctrl.opf |= REQ_BTRFS_CGROUP_PUNT;
2190 ret = __extent_writepage_io(BTRFS_I(inode), page, &bio_ctrl,
2213 submit_write_bio(&bio_ctrl, found_error ? ret : 0);
2221 struct btrfs_bio_ctrl bio_ctrl = {
2231 ret = extent_write_cache_pages(mapping, &bio_ctrl);
2232 submit_write_bio(&bio_ctrl, ret);
2239 struct btrfs_bio_ctrl bio_ctrl = { .opf = REQ_OP_READ | REQ_RAHEAD };
2250 &em_cached, &bio_ctrl, &prev_em_start);
2255 submit_one_bio(&bio_ctrl);