Lines Matching defs:ioend

38 static inline bool xfs_ioend_is_append(struct iomap_ioend *ioend)
40 return ioend->io_offset + ioend->io_size >
41 XFS_I(ioend->io_inode)->i_disk_size;
84 struct iomap_ioend *ioend)
86 struct xfs_inode *ip = XFS_I(ioend->io_inode);
88 xfs_off_t offset = ioend->io_offset;
89 size_t size = ioend->io_size;
110 * I/O error. The delalloc punch is required because this ioend was
115 error = blk_status_to_errno(ioend->io_bio.bi_status);
117 if (ioend->io_flags & IOMAP_F_SHARED) {
128 if (ioend->io_flags & IOMAP_F_SHARED)
130 else if (ioend->io_type == IOMAP_UNWRITTEN)
133 if (!error && xfs_ioend_is_append(ioend))
134 error = xfs_setfilesize(ip, ioend->io_offset, ioend->io_size);
136 iomap_finish_ioends(ioend, error);
149 * The ioend chain length that we can be processing here is largely unbound in
150 * length and we may have to perform significant amounts of work on each ioend
160 struct iomap_ioend *ioend;
169 while ((ioend = list_first_entry_or_null(&tmp, struct iomap_ioend,
171 list_del_init(&ioend->io_list);
172 iomap_ioend_try_merge(ioend, &tmp);
173 xfs_end_ioend(ioend);
182 struct iomap_ioend *ioend = iomap_ioend_from_bio(bio);
183 struct xfs_inode *ip = XFS_I(ioend->io_inode);
190 list_add_tail(&ioend->io_list, &ip->i_ioend_list);
425 struct iomap_ioend *ioend,
438 if (!status && (ioend->io_flags & IOMAP_F_SHARED)) {
439 status = xfs_reflink_convert_cow(XFS_I(ioend->io_inode),
440 ioend->io_offset, ioend->io_size);
446 if (xfs_ioend_is_append(ioend) || ioend->io_type == IOMAP_UNWRITTEN ||
447 (ioend->io_flags & IOMAP_F_SHARED))
448 ioend->io_bio.bi_end_io = xfs_end_bio;