Home
last modified time | relevance | path

Searched refs:iomap (Results 1 – 25 of 34) sorted by relevance

12

/fs/iomap/
Dswapfile.c15 struct iomap iomap; /* accumulated iomap */ member
31 struct iomap *iomap = &isi->iomap; in iomap_swapfile_add_extent() local
47 first_ppage = ALIGN(iomap->addr, PAGE_SIZE) >> PAGE_SHIFT; in iomap_swapfile_add_extent()
48 next_ppage = ALIGN_DOWN(iomap->addr + iomap->length, PAGE_SIZE) >> in iomap_swapfile_add_extent()
63 if (iomap->offset == 0) in iomap_swapfile_add_extent()
85 loff_t count, void *data, struct iomap *iomap, in iomap_swapfile_activate_actor() argument
86 struct iomap *srcmap) in iomap_swapfile_activate_actor()
91 switch (iomap->type) { in iomap_swapfile_activate_actor()
106 if (iomap->flags & IOMAP_F_DIRTY) { in iomap_swapfile_activate_actor()
110 if (iomap->flags & IOMAP_F_SHARED) { in iomap_swapfile_activate_actor()
[all …]
Dfiemap.c13 struct iomap prev;
17 struct iomap *iomap, u32 flags) in iomap_to_fiemap() argument
19 switch (iomap->type) { in iomap_to_fiemap()
36 if (iomap->flags & IOMAP_F_MERGED) in iomap_to_fiemap()
38 if (iomap->flags & IOMAP_F_SHARED) in iomap_to_fiemap()
41 return fiemap_fill_next_extent(fi, iomap->offset, in iomap_to_fiemap()
42 iomap->addr != IOMAP_NULL_ADDR ? iomap->addr : 0, in iomap_to_fiemap()
43 iomap->length, flags); in iomap_to_fiemap()
48 struct iomap *iomap, struct iomap *srcmap) in iomap_fiemap_actor() argument
53 if (iomap->type == IOMAP_HOLE) in iomap_fiemap_actor()
[all …]
Dbuffered-io.c210 struct iomap *iomap) in iomap_read_inline_data() argument
219 BUG_ON(size > PAGE_SIZE - offset_in_page(iomap->inline_data)); in iomap_read_inline_data()
222 memcpy(addr, iomap->inline_data, size); in iomap_read_inline_data()
229 struct iomap *iomap, loff_t pos) in iomap_block_needs_zeroing() argument
231 return iomap->type != IOMAP_MAPPED || in iomap_block_needs_zeroing()
232 (iomap->flags & IOMAP_F_NEW) || in iomap_block_needs_zeroing()
238 struct iomap *iomap, struct iomap *srcmap) in iomap_readpage_actor() argument
248 if (iomap->type == IOMAP_INLINE) { in iomap_readpage_actor()
250 iomap_read_inline_data(inode, page, iomap); in iomap_readpage_actor()
259 if (iomap_block_needs_zeroing(inode, iomap, pos)) { in iomap_readpage_actor()
[all …]
Ddirect-io.c63 static void iomap_dio_submit_bio(struct iomap_dio *dio, struct iomap *iomap, in iomap_dio_submit_bio() argument
71 dio->submit.last_queue = bdev_get_queue(iomap->bdev); in iomap_dio_submit_bio()
75 iomap, bio, pos); in iomap_dio_submit_bio()
186 iomap_dio_zero(struct iomap_dio *dio, struct iomap *iomap, loff_t pos, in iomap_dio_zero() argument
197 bio_set_dev(bio, iomap->bdev); in iomap_dio_zero()
198 bio->bi_iter.bi_sector = iomap_sector(iomap, pos); in iomap_dio_zero()
205 iomap_dio_submit_bio(dio, iomap, bio, pos); in iomap_dio_zero()
210 struct iomap_dio *dio, struct iomap *iomap) in iomap_dio_bio_actor() argument
212 unsigned int blkbits = blksize_bits(bdev_logical_block_size(iomap->bdev)); in iomap_dio_bio_actor()
225 if (iomap->type == IOMAP_UNWRITTEN) { in iomap_dio_bio_actor()
[all …]
Dapply.c27 struct iomap iomap = { .type = IOMAP_HOLE }; in iomap_apply() local
28 struct iomap srcmap = { .type = IOMAP_HOLE }; in iomap_apply()
46 ret = ops->iomap_begin(inode, pos, length, flags, &iomap, &srcmap); in iomap_apply()
49 if (WARN_ON(iomap.offset > pos)) { in iomap_apply()
53 if (WARN_ON(iomap.length == 0)) { in iomap_apply()
58 trace_iomap_apply_dstmap(inode, &iomap); in iomap_apply()
66 end = iomap.offset + iomap.length; in iomap_apply()
84 written = actor(inode, pos, length, data, &iomap, in iomap_apply()
85 srcmap.type != IOMAP_HOLE ? &srcmap : &iomap); in iomap_apply()
95 flags, &iomap); in iomap_apply()
Dtrace.h9 #define TRACE_SYSTEM iomap
103 TP_PROTO(struct inode *inode, struct iomap *iomap),
104 TP_ARGS(inode, iomap),
118 __entry->addr = iomap->addr;
119 __entry->offset = iomap->offset;
120 __entry->length = iomap->length;
121 __entry->type = iomap->type;
122 __entry->flags = iomap->flags;
123 __entry->bdev = iomap->bdev ? iomap->bdev->bd_dev : 0;
139 TP_PROTO(struct inode *inode, struct iomap *iomap), \
[all …]
Dseek.c122 void *data, struct iomap *iomap, struct iomap *srcmap) in iomap_seek_hole_actor() argument
124 switch (iomap->type) { in iomap_seek_hole_actor()
165 void *data, struct iomap *iomap, struct iomap *srcmap) in iomap_seek_data_actor() argument
167 switch (iomap->type) { in iomap_seek_data_actor()
DMakefile9 obj-$(CONFIG_FS_IOMAP) += iomap.o
11 iomap-y += trace.o \
17 iomap-$(CONFIG_SWAP) += swapfile.o
/fs/xfs/
Dxfs_iomap.c55 struct iomap *iomap, in xfs_bmbt_to_iomap() argument
66 iomap->addr = IOMAP_NULL_ADDR; in xfs_bmbt_to_iomap()
67 iomap->type = IOMAP_HOLE; in xfs_bmbt_to_iomap()
70 iomap->addr = IOMAP_NULL_ADDR; in xfs_bmbt_to_iomap()
71 iomap->type = IOMAP_DELALLOC; in xfs_bmbt_to_iomap()
73 iomap->addr = BBTOB(xfs_fsb_to_db(ip, imap->br_startblock)); in xfs_bmbt_to_iomap()
75 iomap->type = IOMAP_UNWRITTEN; in xfs_bmbt_to_iomap()
77 iomap->type = IOMAP_MAPPED; in xfs_bmbt_to_iomap()
79 iomap->offset = XFS_FSB_TO_B(mp, imap->br_startoff); in xfs_bmbt_to_iomap()
80 iomap->length = XFS_FSB_TO_B(mp, imap->br_blockcount); in xfs_bmbt_to_iomap()
[all …]
Dxfs_aops.c251 if (offset < wpc->iomap.offset || in xfs_imap_valid()
252 offset >= wpc->iomap.offset + wpc->iomap.length) in xfs_imap_valid()
259 if (wpc->iomap.flags & IOMAP_F_SHARED) in xfs_imap_valid()
308 &wpc->iomap, seq); in xfs_convert_blocks()
311 } while (wpc->iomap.offset + wpc->iomap.length <= offset); in xfs_convert_blocks()
425 xfs_bmbt_to_iomap(ip, &wpc->iomap, &imap, 0); in xfs_map_blocks()
452 if (cow_offset < wpc->iomap.offset + wpc->iomap.length) in xfs_map_blocks()
453 wpc->iomap.length = cow_offset - wpc->iomap.offset; in xfs_map_blocks()
456 ASSERT(wpc->iomap.offset <= offset); in xfs_map_blocks()
457 ASSERT(wpc->iomap.offset + wpc->iomap.length > offset); in xfs_map_blocks()
Dxfs_pnfs.h8 struct iomap *iomap, bool write, u32 *device_generation);
9 int xfs_fs_commit_blocks(struct inode *inode, struct iomap *maps, int nr_maps,
Dxfs_pnfs.c81 struct iomap *iomap, in xfs_fs_map_blocks() argument
178 error = xfs_bmbt_to_iomap(ip, iomap, &imap, 0); in xfs_fs_map_blocks()
225 struct iomap *maps, in xfs_fs_commit_blocks()
/fs/gfs2/
Dbmap.c583 struct metapath *mp, struct iomap *iomap) in gfs2_hole_size() argument
598 iomap->length = hole_size << inode->i_blkbits; in gfs2_hole_size()
660 static int gfs2_iomap_alloc(struct inode *inode, struct iomap *iomap, in gfs2_iomap_alloc() argument
668 size_t dblks = iomap->length >> inode->i_blkbits; in gfs2_iomap_alloc()
764 iomap->addr = bn << inode->i_blkbits; in gfs2_iomap_alloc()
765 iomap->flags |= IOMAP_F_MERGED | IOMAP_F_NEW; in gfs2_iomap_alloc()
770 } while (iomap->addr == IOMAP_NULL_ADDR); in gfs2_iomap_alloc()
772 iomap->type = IOMAP_MAPPED; in gfs2_iomap_alloc()
773 iomap->length = (u64)dblks << inode->i_blkbits; in gfs2_iomap_alloc()
840 unsigned flags, struct iomap *iomap, in gfs2_iomap_get() argument
[all …]
Dfile.c422 struct iomap iomap = { }; in gfs2_allocate_page_backing() local
424 if (gfs2_iomap_get_alloc(page->mapping->host, pos, length, &iomap)) in gfs2_allocate_page_backing()
427 if (length < iomap.length) in gfs2_allocate_page_backing()
428 iomap.length = length; in gfs2_allocate_page_backing()
429 length -= iomap.length; in gfs2_allocate_page_backing()
430 pos += iomap.length; in gfs2_allocate_page_backing()
1001 struct iomap iomap = { }; in fallocate_chunk() local
1004 &iomap); in fallocate_chunk()
1007 offset = iomap.offset + iomap.length; in fallocate_chunk()
1008 if (!(iomap.flags & IOMAP_F_NEW)) in fallocate_chunk()
[all …]
Dtrace_gfs2.h510 TP_PROTO(const struct gfs2_inode *ip, struct iomap *iomap, int ret),
512 TP_ARGS(ip, iomap, ret),
528 __entry->offset = iomap->offset;
529 __entry->length = iomap->length;
530 __entry->pblock = iomap->addr == IOMAP_NULL_ADDR ? 0 :
531 (iomap->addr >> ip->i_inode.i_blkbits);
532 __entry->flags = iomap->flags;
533 __entry->type = iomap->type;
Dbmap.h53 struct iomap *iomap);
/fs/
Ddax.c1009 static sector_t dax_iomap_sector(struct iomap *iomap, loff_t pos) in dax_iomap_sector() argument
1011 return (iomap->addr + (pos & PAGE_MASK) - iomap->offset) >> 9; in dax_iomap_sector()
1014 static int dax_iomap_pfn(struct iomap *iomap, loff_t pos, size_t size, in dax_iomap_pfn() argument
1017 const sector_t sector = dax_iomap_sector(iomap, pos); in dax_iomap_pfn()
1022 rc = bdev_dax_pgoff(iomap->bdev, sector, size, &pgoff); in dax_iomap_pfn()
1026 length = dax_direct_access(iomap->dax_dev, pgoff, PHYS_PFN(size), in dax_iomap_pfn()
1070 s64 dax_iomap_zero(loff_t pos, u64 length, struct iomap *iomap) in dax_iomap_zero() argument
1072 sector_t sector = iomap_sector(iomap, pos & PAGE_MASK); in dax_iomap_zero()
1084 rc = bdev_dax_pgoff(iomap->bdev, sector, PAGE_SIZE, &pgoff); in dax_iomap_zero()
1091 rc = dax_zero_page_range(iomap->dax_dev, pgoff, 1); in dax_iomap_zero()
[all …]
Dinternal.h10 struct iomap;
55 get_block_t *get_block, struct iomap *iomap);
/fs/nfsd/
Dblocklayout.c31 struct iomap iomap; in nfsd4_block_proc_layoutget() local
51 &iomap, seg->iomode != IOMODE_READ, in nfsd4_block_proc_layoutget()
59 if (iomap.length < args->lg_minlength) { in nfsd4_block_proc_layoutget()
64 switch (iomap.type) { in nfsd4_block_proc_layoutget()
70 bex->soff = iomap.addr; in nfsd4_block_proc_layoutget()
83 bex->soff = iomap.addr; in nfsd4_block_proc_layoutget()
95 WARN(1, "pnfsd: filesystem returned %d extent\n", iomap.type); in nfsd4_block_proc_layoutget()
102 bex->foff = iomap.offset; in nfsd4_block_proc_layoutget()
103 bex->len = iomap.length; in nfsd4_block_proc_layoutget()
105 seg->offset = iomap.offset; in nfsd4_block_proc_layoutget()
[all …]
Dblocklayoutxdr.h8 struct iomap;
57 int nfsd4_block_decode_layoutupdate(__be32 *p, u32 len, struct iomap **iomapp,
59 int nfsd4_scsi_decode_layoutupdate(__be32 *p, u32 len, struct iomap **iomapp,
Dblocklayoutxdr.c115 nfsd4_block_decode_layoutupdate(__be32 *p, u32 len, struct iomap **iomapp, in nfsd4_block_decode_layoutupdate()
118 struct iomap *iomaps; in nfsd4_block_decode_layoutupdate()
187 nfsd4_scsi_decode_layoutupdate(__be32 *p, u32 len, struct iomap **iomapp, in nfsd4_scsi_decode_layoutupdate()
190 struct iomap *iomaps; in nfsd4_scsi_decode_layoutupdate()
/fs/fuse/
Ddax.c387 static void fuse_fill_iomap_hole(struct iomap *iomap, loff_t length) in fuse_fill_iomap_hole() argument
389 iomap->addr = IOMAP_NULL_ADDR; in fuse_fill_iomap_hole()
390 iomap->length = length; in fuse_fill_iomap_hole()
391 iomap->type = IOMAP_HOLE; in fuse_fill_iomap_hole()
395 struct iomap *iomap, struct fuse_dax_mapping *dmap, in fuse_fill_iomap() argument
409 iomap->addr = dmap->window_offset + offset; in fuse_fill_iomap()
410 iomap->length = len; in fuse_fill_iomap()
412 iomap->length = ALIGN(len, PAGE_SIZE); in fuse_fill_iomap()
413 iomap->type = IOMAP_MAPPED; in fuse_fill_iomap()
422 WARN_ON_ONCE(iomap->private); in fuse_fill_iomap()
[all …]
/fs/zonefs/
Dsuper.c73 struct iomap *iomap, struct iomap *srcmap) in zonefs_read_iomap_begin() argument
84 iomap->bdev = inode->i_sb->s_bdev; in zonefs_read_iomap_begin()
85 iomap->offset = ALIGN_DOWN(offset, sb->s_blocksize); in zonefs_read_iomap_begin()
87 if (iomap->offset >= isize) { in zonefs_read_iomap_begin()
88 iomap->type = IOMAP_HOLE; in zonefs_read_iomap_begin()
89 iomap->addr = IOMAP_NULL_ADDR; in zonefs_read_iomap_begin()
90 iomap->length = length; in zonefs_read_iomap_begin()
92 iomap->type = IOMAP_MAPPED; in zonefs_read_iomap_begin()
93 iomap->addr = (zi->i_zsector << SECTOR_SHIFT) + iomap->offset; in zonefs_read_iomap_begin()
94 iomap->length = isize - iomap->offset; in zonefs_read_iomap_begin()
[all …]
/fs/ext2/
Dinode.c804 unsigned flags, struct iomap *iomap, struct iomap *srcmap) in ext2_iomap_begin() argument
819 iomap->flags = 0; in ext2_iomap_begin()
820 iomap->bdev = inode->i_sb->s_bdev; in ext2_iomap_begin()
821 iomap->offset = (u64)first_block << blkbits; in ext2_iomap_begin()
822 iomap->dax_dev = sbi->s_daxdev; in ext2_iomap_begin()
825 iomap->type = IOMAP_HOLE; in ext2_iomap_begin()
826 iomap->addr = IOMAP_NULL_ADDR; in ext2_iomap_begin()
827 iomap->length = 1 << blkbits; in ext2_iomap_begin()
829 iomap->type = IOMAP_MAPPED; in ext2_iomap_begin()
830 iomap->addr = (u64)bno << blkbits; in ext2_iomap_begin()
[all …]
/fs/ext4/
Dinode.c3396 static void ext4_set_iomap(struct inode *inode, struct iomap *iomap, in ext4_set_iomap() argument
3407 iomap->flags = 0; in ext4_set_iomap()
3410 iomap->flags |= IOMAP_F_DIRTY; in ext4_set_iomap()
3413 iomap->flags |= IOMAP_F_NEW; in ext4_set_iomap()
3415 iomap->bdev = inode->i_sb->s_bdev; in ext4_set_iomap()
3416 iomap->dax_dev = EXT4_SB(inode->i_sb)->s_daxdev; in ext4_set_iomap()
3417 iomap->offset = (u64) map->m_lblk << blkbits; in ext4_set_iomap()
3418 iomap->length = (u64) map->m_len << blkbits; in ext4_set_iomap()
3422 iomap->flags |= IOMAP_F_MERGED; in ext4_set_iomap()
3434 iomap->type = IOMAP_UNWRITTEN; in ext4_set_iomap()
[all …]

12