Lines Matching refs:iomap

27 #include <linux/iomap.h>
1009 static sector_t dax_iomap_sector(struct iomap *iomap, loff_t pos)
1011 return (iomap->addr + (pos & PAGE_MASK) - iomap->offset) >> 9;
1014 static int dax_iomap_pfn(struct iomap *iomap, loff_t pos, size_t size,
1017 const sector_t sector = dax_iomap_sector(iomap, pos);
1022 rc = bdev_dax_pgoff(iomap->bdev, sector, size, &pgoff);
1026 length = dax_direct_access(iomap->dax_dev, pgoff, PHYS_PFN(size),
1070 s64 dax_iomap_zero(loff_t pos, u64 length, struct iomap *iomap)
1072 sector_t sector = iomap_sector(iomap, pos & PAGE_MASK);
1084 rc = bdev_dax_pgoff(iomap->bdev, sector, PAGE_SIZE, &pgoff);
1091 rc = dax_zero_page_range(iomap->dax_dev, pgoff, 1);
1093 rc = dax_direct_access(iomap->dax_dev, pgoff, 1, &kaddr, NULL);
1101 dax_flush(iomap->dax_dev, kaddr + offset, size);
1109 struct iomap *iomap, struct iomap *srcmap)
1111 struct block_device *bdev = iomap->bdev;
1112 struct dax_device *dax_dev = iomap->dax_dev;
1124 if (iomap->type == IOMAP_HOLE || iomap->type == IOMAP_UNWRITTEN)
1128 if (WARN_ON_ONCE(iomap->type != IOMAP_MAPPED))
1136 if (iomap->flags & IOMAP_F_NEW) {
1146 const sector_t sector = dax_iomap_sector(iomap, pos);
1203 * @ops: iomap ops passed from the file system
1254 struct vm_area_struct *vma, struct iomap *iomap)
1257 && (iomap->flags & IOMAP_F_DIRTY);
1269 struct iomap iomap = { .type = IOMAP_HOLE };
1270 struct iomap srcmap = { .type = IOMAP_HOLE };
1315 error = ops->iomap_begin(inode, pos, PAGE_SIZE, flags, &iomap, &srcmap);
1322 if (WARN_ON_ONCE(iomap.offset + iomap.length < pos + PAGE_SIZE)) {
1328 sector_t sector = dax_iomap_sector(&iomap, pos);
1330 switch (iomap.type) {
1336 error = copy_cow_page_dax(iomap.bdev, iomap.dax_dev,
1355 sync = dax_fault_is_synchronous(flags, vma, &iomap);
1357 switch (iomap.type) {
1359 if (iomap.flags & IOMAP_F_NEW) {
1364 error = dax_iomap_pfn(&iomap, pos, PAGE_SIZE, &pfn);
1420 ops->iomap_end(inode, pos, PAGE_SIZE, copied, flags, &iomap);
1431 struct iomap *iomap, void **entry)
1494 struct iomap iomap = { .type = IOMAP_HOLE };
1495 struct iomap srcmap = { .type = IOMAP_HOLE };
1570 error = ops->iomap_begin(inode, pos, PMD_SIZE, iomap_flags, &iomap,
1575 if (iomap.offset + iomap.length < pos + PMD_SIZE)
1578 sync = dax_fault_is_synchronous(iomap_flags, vma, &iomap);
1580 switch (iomap.type) {
1582 error = dax_iomap_pfn(&iomap, pos, PMD_SIZE, &pfn);
1610 result = dax_pmd_load_hole(&xas, vmf, &iomap, &entry);
1630 &iomap);