Home
last modified time | relevance | path

Searched refs:ioend (Results 1 – 11 of 11) sorted by relevance

/linux/fs/iomap/
H A Dioend.c21 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 Dbio.c76 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 DMakefile15 ioend.o \
H A Ddirect-io.c282 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 Dxfs_ioend.c22 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 Dxfs_aops.c338 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 Dxfs_ioend.h8 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 Dxfs_zone_alloc.c777 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 Dxfs_file.c701 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 Diomap.h562 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 Doperations.rst373 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.