Lines Matching refs:iomi

391 static loff_t iomap_dio_inline_iter(const struct iomap_iter *iomi,  in iomap_dio_inline_iter()  argument
394 const struct iomap *iomap = &iomi->iomap; in iomap_dio_inline_iter()
396 void *inline_data = iomap_inline_data(iomap, iomi->pos); in iomap_dio_inline_iter()
397 loff_t length = iomap_length(iomi); in iomap_dio_inline_iter()
398 loff_t pos = iomi->pos; in iomap_dio_inline_iter()
405 loff_t size = iomi->inode->i_size; in iomap_dio_inline_iter()
412 i_size_write(iomi->inode, pos + copied); in iomap_dio_inline_iter()
413 mark_inode_dirty(iomi->inode); in iomap_dio_inline_iter()
483 struct iomap_iter iomi = { in __iomap_dio_rw() local
490 loff_t end = iomi.pos + iomi.len - 1, ret = 0; in __iomap_dio_rw()
496 if (!iomi.len) in __iomap_dio_rw()
517 if (iomi.pos >= dio->i_size) in __iomap_dio_rw()
521 if (filemap_range_needs_writeback(mapping, iomi.pos, in __iomap_dio_rw()
526 iomi.flags |= IOMAP_NOWAIT; in __iomap_dio_rw()
532 iomi.flags |= IOMAP_WRITE; in __iomap_dio_rw()
536 if (filemap_range_has_page(mapping, iomi.pos, end)) { in __iomap_dio_rw()
540 iomi.flags |= IOMAP_NOWAIT; in __iomap_dio_rw()
560 if (iomi.pos >= dio->i_size || in __iomap_dio_rw()
561 iomi.pos + iomi.len > dio->i_size) in __iomap_dio_rw()
563 iomi.flags |= IOMAP_OVERWRITE_ONLY; in __iomap_dio_rw()
566 ret = filemap_write_and_wait_range(mapping, iomi.pos, end); in __iomap_dio_rw()
577 iomi.pos >> PAGE_SHIFT, end >> PAGE_SHIFT)) { in __iomap_dio_rw()
578 trace_iomap_dio_invalidate_fail(inode, iomi.pos, in __iomap_dio_rw()
579 iomi.len); in __iomap_dio_rw()
594 while ((ret = iomap_iter(&iomi, ops)) > 0) { in __iomap_dio_rw()
595 iomi.processed = iomap_dio_iter(&iomi, dio); in __iomap_dio_rw()
610 if (iov_iter_rw(iter) == READ && iomi.pos >= dio->i_size) in __iomap_dio_rw()
611 iov_iter_revert(iter, iomi.pos - dio->i_size); in __iomap_dio_rw()