Lines Matching refs:wpc

1195 iomap_submit_ioend(struct iomap_writepage_ctx *wpc, struct iomap_ioend *ioend,
1201 if (wpc->ops->prepare_ioend)
1202 error = wpc->ops->prepare_ioend(ioend, error);
1220 iomap_alloc_ioend(struct inode *inode, struct iomap_writepage_ctx *wpc,
1227 bio_set_dev(bio, wpc->iomap.bdev);
1235 ioend->io_type = wpc->iomap.type;
1236 ioend->io_flags = wpc->iomap.flags;
1270 iomap_can_add_to_ioend(struct iomap_writepage_ctx *wpc, loff_t offset,
1273 if ((wpc->iomap.flags & IOMAP_F_SHARED) !=
1274 (wpc->ioend->io_flags & IOMAP_F_SHARED))
1276 if (wpc->iomap.type != wpc->ioend->io_type)
1278 if (offset != wpc->ioend->io_offset + wpc->ioend->io_size)
1280 if (sector != bio_end_sector(wpc->ioend->io_bio))
1291 struct iomap_page *iop, struct iomap_writepage_ctx *wpc,
1294 sector_t sector = iomap_sector(&wpc->iomap, offset);
1299 if (!wpc->ioend || !iomap_can_add_to_ioend(wpc, offset, sector)) {
1300 if (wpc->ioend)
1301 list_add(&wpc->ioend->io_list, iolist);
1302 wpc->ioend = iomap_alloc_ioend(inode, wpc, offset, sector, wbc);
1305 merged = __bio_try_merge_page(wpc->ioend->io_bio, page, len, poff,
1311 if (bio_full(wpc->ioend->io_bio, len)) {
1312 wpc->ioend->io_bio =
1313 iomap_chain_bio(wpc->ioend->io_bio);
1315 bio_add_page(wpc->ioend->io_bio, page, len, poff);
1318 wpc->ioend->io_size += len;
1339 iomap_writepage_map(struct iomap_writepage_ctx *wpc,
1364 error = wpc->ops->map_blocks(wpc, inode, file_offset);
1367 if (WARN_ON_ONCE(wpc->iomap.type == IOMAP_INLINE))
1369 if (wpc->iomap.type == IOMAP_HOLE)
1371 iomap_add_to_ioend(inode, file_offset, page, iop, wpc, wbc,
1376 WARN_ON_ONCE(!wpc->ioend && !list_empty(&submit_list));
1394 if (wpc->ops->discard_page)
1395 wpc->ops->discard_page(page, file_offset);
1415 error2 = iomap_submit_ioend(wpc, ioend, error);
1441 struct iomap_writepage_ctx *wpc = data;
1529 return iomap_writepage_map(wpc, wbc, inode, page, end_offset);
1539 struct iomap_writepage_ctx *wpc,
1544 wpc->ops = ops;
1545 ret = iomap_do_writepage(page, wbc, wpc);
1546 if (!wpc->ioend)
1548 return iomap_submit_ioend(wpc, wpc->ioend, ret);
1554 struct iomap_writepage_ctx *wpc,
1559 wpc->ops = ops;
1560 ret = write_cache_pages(mapping, wbc, iomap_do_writepage, wpc);
1561 if (!wpc->ioend)
1563 return iomap_submit_ioend(wpc, wpc->ioend, ret);