Lines Matching refs:iomi
454 static loff_t iomap_dio_inline_iter(const struct iomap_iter *iomi, in iomap_dio_inline_iter() argument
457 const struct iomap *iomap = &iomi->iomap; in iomap_dio_inline_iter()
459 void *inline_data = iomap_inline_data(iomap, iomi->pos); in iomap_dio_inline_iter()
460 loff_t length = iomap_length(iomi); in iomap_dio_inline_iter()
461 loff_t pos = iomi->pos; in iomap_dio_inline_iter()
468 loff_t size = iomi->inode->i_size; in iomap_dio_inline_iter()
475 i_size_write(iomi->inode, pos + copied); in iomap_dio_inline_iter()
476 mark_inode_dirty(iomi->inode); in iomap_dio_inline_iter()
545 struct iomap_iter iomi = { in __iomap_dio_rw() local
560 if (!iomi.len) in __iomap_dio_rw()
580 iomi.flags |= IOMAP_NOWAIT; in __iomap_dio_rw()
586 if (iomi.pos >= dio->i_size) in __iomap_dio_rw()
592 ret = kiocb_write_and_wait(iocb, iomi.len); in __iomap_dio_rw()
596 iomi.flags |= IOMAP_WRITE; in __iomap_dio_rw()
610 if (iomi.pos >= dio->i_size || in __iomap_dio_rw()
611 iomi.pos + iomi.len > dio->i_size) in __iomap_dio_rw()
613 iomi.flags |= IOMAP_OVERWRITE_ONLY; in __iomap_dio_rw()
638 ret = kiocb_invalidate_pages(iocb, iomi.len); in __iomap_dio_rw()
641 trace_iomap_dio_invalidate_fail(inode, iomi.pos, in __iomap_dio_rw()
642 iomi.len); in __iomap_dio_rw()
658 while ((ret = iomap_iter(&iomi, ops)) > 0) { in __iomap_dio_rw()
659 iomi.processed = iomap_dio_iter(&iomi, dio); in __iomap_dio_rw()
674 if (iov_iter_rw(iter) == READ && iomi.pos >= dio->i_size) in __iomap_dio_rw()
675 iov_iter_revert(iter, iomi.pos - dio->i_size); in __iomap_dio_rw()
717 trace_iomap_dio_rw_queued(inode, iomi.pos, iomi.len); in __iomap_dio_rw()