Lines Matching defs:iter

830 static int copy_cow_page_dax(struct vm_fault *vmf, const struct iomap_iter *iter)
832 pgoff_t pgoff = dax_iomap_pgoff(&iter->iomap, iter->pos);
838 rc = dax_direct_access(iter->iomap.dax_dev, pgoff, 1, DAX_ACCESS,
855 static bool dax_fault_is_synchronous(const struct iomap_iter *iter,
858 return (iter->flags & IOMAP_WRITE) && (vma->vm_flags & VM_SYNC) &&
859 (iter->iomap.flags & IOMAP_F_DIRTY);
870 const struct iomap_iter *iter, void *entry, pfn_t pfn,
875 bool write = iter->flags & IOMAP_WRITE;
876 bool dirty = write && !dax_fault_is_synchronous(iter, vmf->vma);
877 bool shared = iter->iomap.flags & IOMAP_F_SHARED;
1187 const struct iomap_iter *iter, void **entry)
1189 struct inode *inode = iter->inode;
1194 *entry = dax_insert_entry(xas, vmf, iter, *entry, pfn, DAX_ZERO_PAGE);
1203 const struct iomap_iter *iter, void **entry)
1221 *entry = dax_insert_entry(xas, vmf, iter, *entry, pfn,
1255 const struct iomap_iter *iter, void **entry)
1261 static s64 dax_unshare_iter(struct iomap_iter *iter)
1263 struct iomap *iomap = &iter->iomap;
1264 const struct iomap *srcmap = iomap_iter_srcmap(iter);
1265 loff_t pos = iter->pos;
1266 loff_t length = iomap_length(iter);
1305 struct iomap_iter iter = {
1313 while ((ret = iomap_iter(&iter, ops)) > 0)
1314 iter.processed = dax_unshare_iter(&iter);
1319 static int dax_memzero(struct iomap_iter *iter, loff_t pos, size_t size)
1321 const struct iomap *iomap = &iter->iomap;
1322 const struct iomap *srcmap = iomap_iter_srcmap(iter);
1342 static s64 dax_zero_iter(struct iomap_iter *iter, bool *did_zero)
1344 const struct iomap *iomap = &iter->iomap;
1345 const struct iomap *srcmap = iomap_iter_srcmap(iter);
1346 loff_t pos = iter->pos;
1347 u64 length = iomap_length(iter);
1359 invalidate_inode_pages2_range(iter->inode->i_mapping,
1374 rc = dax_memzero(iter, pos, size);
1392 struct iomap_iter iter = {
1400 while ((ret = iomap_iter(&iter, ops)) > 0)
1401 iter.processed = dax_zero_iter(&iter, did_zero);
1420 struct iov_iter *iter)
1428 bool write = iov_iter_rw(iter) == WRITE;
1440 return iov_iter_zero(min(length, end - pos), iter);
1488 if (map_len == -EHWPOISON && iov_iter_rw(iter) == WRITE) {
1515 map_len, iter);
1518 map_len, iter);
1521 map_len, iter);
1540 * @iter: The addresses to do I/O from or to
1548 dax_iomap_rw(struct kiocb *iocb, struct iov_iter *iter,
1554 .len = iov_iter_count(iter),
1563 if (iov_iter_rw(iter) == WRITE) {
1574 iomi.processed = dax_iomap_iter(&iomi, iter);
1604 const struct iomap_iter *iter)
1609 switch (iter->iomap.type) {
1615 error = copy_cow_page_dax(vmf, iter);
1636 * @iter: iomap iter
1643 const struct iomap_iter *iter, pfn_t *pfnp,
1646 const struct iomap *iomap = &iter->iomap;
1647 const struct iomap *srcmap = iomap_iter_srcmap(iter);
1650 bool write = iter->flags & IOMAP_WRITE;
1657 return dax_fault_cow_page(vmf, iter);
1663 return dax_load_hole(xas, vmf, iter, entry);
1664 return dax_pmd_load_hole(xas, vmf, iter, entry);
1676 *entry = dax_insert_entry(xas, vmf, iter, *entry, pfn, entry_flags);
1684 if (dax_fault_is_synchronous(iter, vmf->vma))
1702 struct iomap_iter iter = {
1712 trace_dax_pte_fault(iter.inode, vmf, ret);
1718 if (iter.pos >= i_size_read(iter.inode)) {
1724 iter.flags |= IOMAP_WRITE;
1743 while ((error = iomap_iter(&iter, ops)) > 0) {
1744 if (WARN_ON_ONCE(iomap_length(&iter) < PAGE_SIZE)) {
1745 iter.processed = -EIO; /* fs corruption? */
1749 ret = dax_fault_iter(vmf, &iter, pfnp, &xas, &entry, false);
1751 (iter.iomap.flags & IOMAP_F_NEW)) {
1758 iter.processed = PAGE_SIZE;
1769 trace_dax_pte_fault_done(iter.inode, vmf, ret);
1812 struct iomap_iter iter = {
1822 iter.flags |= IOMAP_WRITE;
1829 max_pgoff = DIV_ROUND_UP(i_size_read(iter.inode), PAGE_SIZE);
1831 trace_dax_pmd_fault(iter.inode, vmf, max_pgoff, 0);
1865 iter.pos = (loff_t)xas.xa_index << PAGE_SHIFT;
1866 while (iomap_iter(&iter, ops) > 0) {
1867 if (iomap_length(&iter) < PMD_SIZE)
1870 ret = dax_fault_iter(vmf, &iter, pfnp, &xas, &entry, true);
1872 iter.processed = PMD_SIZE;
1883 trace_dax_pmd_fault_done(iter.inode, vmf, max_pgoff, ret);