Searched refs:ioend (Results 1 – 11 of 11) sorted by relevance
| /linux/fs/iomap/ |
| H A D | ioend.c | 21 struct iomap_ioend *ioend = iomap_ioend_from_bio(bio); in iomap_init_ioend() local 23 atomic_set(&ioend->io_remaining, 1); in iomap_init_ioend() 24 ioend->io_error = 0; in iomap_init_ioend() 25 ioend->io_parent = NULL; in iomap_init_ioend() 26 INIT_LIST_HEAD(&ioend->io_list); in iomap_init_ioend() 27 ioend->io_flags = ioend_flags; in iomap_init_ioend() 28 ioend->io_inode = inode; in iomap_init_ioend() 29 ioend->io_offset = file_offset; in iomap_init_ioend() 30 ioend->io_size = bio->bi_iter.bi_size; in iomap_init_ioend() 31 ioend->io_sector = bio->bi_iter.bi_sector; in iomap_init_ioend() [all …]
|
| H A D | bio.c | 76 u32 iomap_finish_ioend_buffered_read(struct iomap_ioend *ioend) in iomap_finish_ioend_buffered_read() argument 78 return __iomap_read_end_io(&ioend->io_bio, ioend->io_error); in iomap_finish_ioend_buffered_read()
|
| H A D | Makefile | 15 ioend.o \
|
| H A D | direct-io.c | 282 u32 iomap_finish_ioend_direct(struct iomap_ioend *ioend) in iomap_finish_ioend_direct() argument 284 struct iomap_dio *dio = ioend->io_bio.bi_private; in iomap_finish_ioend_direct() 285 u32 vec_count = ioend->io_bio.bi_vcnt; in iomap_finish_ioend_direct() 287 if (ioend->io_error) in iomap_finish_ioend_direct() 288 iomap_dio_set_error(dio, ioend->io_error); in iomap_finish_ioend_direct() 289 __iomap_dio_bio_end_io(&ioend->io_bio, true); in iomap_finish_ioend_direct()
|
| /linux/fs/xfs/ |
| H A D | xfs_ioend.c | 22 struct iomap_ioend *ioend) in xfs_ioend_put_open_zones() argument 29 list_for_each_entry(tmp, &ioend->io_list, io_list) in xfs_ioend_put_open_zones() 36 if (ioend->io_private) in xfs_ioend_put_open_zones() 37 xfs_open_zone_put(ioend->io_private); in xfs_ioend_put_open_zones() 42 struct iomap_ioend *ioend) in xfs_end_ioend_write() argument 44 struct xfs_inode *ip = XFS_I(ioend->io_inode); in xfs_end_ioend_write() 47 xfs_off_t offset = ioend->io_offset; in xfs_end_ioend_write() 48 size_t size = ioend->io_size; in xfs_end_ioend_write() 74 error = blk_status_to_errno(ioend->io_bio.bi_status); in xfs_end_ioend_write() 87 if (ioend->io_flags & IOMAP_IOEND_SHARED) { in xfs_end_ioend_write() [all …]
|
| H A D | xfs_aops.c | 338 struct iomap_ioend *ioend) in xfs_ioend_needs_wq_completion() argument 341 if (xfs_ioend_is_append(ioend)) in xfs_ioend_needs_wq_completion() 345 if (ioend->io_flags & (IOMAP_IOEND_UNWRITTEN | IOMAP_IOEND_SHARED)) in xfs_ioend_needs_wq_completion() 356 struct iomap_ioend *ioend = wpc->wb_ctx; in xfs_writeback_submit() local 365 if (!error && (ioend->io_flags & IOMAP_IOEND_SHARED)) { in xfs_writeback_submit() 369 error = xfs_reflink_convert_cow(XFS_I(ioend->io_inode), in xfs_writeback_submit() 370 ioend->io_offset, ioend->io_size); in xfs_writeback_submit() 379 if (xfs_ioend_needs_wq_completion(ioend)) { in xfs_writeback_submit() 380 ioend->io_bio.bi_end_io = xfs_end_bio; in xfs_writeback_submit() 381 bio_clear_flag(&ioend->io_bio, BIO_COMPLETE_IN_TASK); in xfs_writeback_submit() [all …]
|
| H A D | xfs_ioend.h | 8 static inline bool xfs_ioend_is_append(struct iomap_ioend *ioend) in xfs_ioend_is_append() argument 10 return ioend->io_offset + ioend->io_size > in xfs_ioend_is_append() 11 XFS_I(ioend->io_inode)->i_disk_size; in xfs_ioend_is_append()
|
| H A D | xfs_zone_alloc.c | 777 struct iomap_ioend *ioend) in xfs_mark_rtg_boundary() argument 779 struct xfs_mount *mp = XFS_I(ioend->io_inode)->i_mount; in xfs_mark_rtg_boundary() 780 sector_t sector = ioend->io_bio.bi_iter.bi_sector; in xfs_mark_rtg_boundary() 783 ioend->io_flags |= IOMAP_IOEND_BOUNDARY; in xfs_mark_rtg_boundary() 880 struct iomap_ioend *ioend, in xfs_submit_zoned_bio() argument 884 ioend->io_bio.bi_iter.bi_sector = ioend->io_sector; in xfs_submit_zoned_bio() 885 ioend->io_private = oz; in xfs_submit_zoned_bio() 889 ioend->io_bio.bi_opf &= ~REQ_OP_WRITE; in xfs_submit_zoned_bio() 890 ioend->io_bio.bi_opf |= REQ_OP_ZONE_APPEND; in xfs_submit_zoned_bio() 892 xfs_mark_rtg_boundary(ioend); in xfs_submit_zoned_bio() [all …]
|
| H A D | xfs_file.c | 701 struct iomap_ioend *ioend; in xfs_dio_zoned_submit_io() local 715 ioend = iomap_init_ioend(iter->inode, bio, file_offset, in xfs_dio_zoned_submit_io() 717 xfs_zone_alloc_and_submit(ioend, &ac->open_zone); in xfs_dio_zoned_submit_io()
|
| /linux/include/linux/ |
| H A D | iomap.h | 562 struct iomap_ioend *iomap_split_ioend(struct iomap_ioend *ioend, 564 void iomap_finish_ioends(struct iomap_ioend *ioend, int error); 565 void iomap_ioend_try_merge(struct iomap_ioend *ioend,
|
| /linux/Documentation/filesystems/iomap/ |
| H A D | operations.rst | 373 deferring the ioend completion to a workqueue to run metadata update 384 bit on the folios attached to the ``ioend``. 409 * ``iomap_ioend_try_merge``: Given an ioend that is not in any list and 411 the head of the list into the given ioend. 417 * ``iomap_finish_ioends``: Finish an ioend that possibly has other 617 * ``IOMAP_DIO_UNWRITTEN``: The mapping was unwritten, so the ioend 621 copy on write operation, so the ioend should switch mappings.
|