aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext2/inode.c
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2016-11-20 20:47:07 -0500
committerTheodore Ts'o <tytso@mit.edu>2016-11-20 20:47:07 -0500
commit00697eed386d57c5267aad5b8343f027b10da0c0 (patch)
treeb1440f03d2aea6832e4d7ae044e665159144984e /fs/ext2/inode.c
parent0bd2d5ec3d7655a849928f04597a0ceea0329176 (diff)
ext2: use iomap_zero_range() for zeroing truncated page in DAX path
Currently the last user of ext2_get_blocks() for DAX inodes was dax_truncate_page(). Convert that to iomap_zero_range() so that all DAX IO uses the iomap path. Reviewed-by: Ross Zwisler <ross.zwisler@linux.intel.com> Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'fs/ext2/inode.c')
-rw-r--r--fs/ext2/inode.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c
index 41b8b44a391c..046b642f3585 100644
--- a/fs/ext2/inode.c
+++ b/fs/ext2/inode.c
@@ -850,6 +850,9 @@ struct iomap_ops ext2_iomap_ops = {
850 .iomap_begin = ext2_iomap_begin, 850 .iomap_begin = ext2_iomap_begin,
851 .iomap_end = ext2_iomap_end, 851 .iomap_end = ext2_iomap_end,
852}; 852};
853#else
854/* Define empty ops for !CONFIG_FS_DAX case to avoid ugly ifdefs */
855struct iomap_ops ext2_iomap_ops;
853#endif /* CONFIG_FS_DAX */ 856#endif /* CONFIG_FS_DAX */
854 857
855int ext2_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, 858int ext2_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
@@ -1293,9 +1296,11 @@ static int ext2_setsize(struct inode *inode, loff_t newsize)
1293 1296
1294 inode_dio_wait(inode); 1297 inode_dio_wait(inode);
1295 1298
1296 if (IS_DAX(inode)) 1299 if (IS_DAX(inode)) {
1297 error = dax_truncate_page(inode, newsize, ext2_get_block); 1300 error = iomap_zero_range(inode, newsize,
1298 else if (test_opt(inode->i_sb, NOBH)) 1301 PAGE_ALIGN(newsize) - newsize, NULL,
1302 &ext2_iomap_ops);
1303 } else if (test_opt(inode->i_sb, NOBH))
1299 error = nobh_truncate_page(inode->i_mapping, 1304 error = nobh_truncate_page(inode->i_mapping,
1300 newsize, ext2_get_block); 1305 newsize, ext2_get_block);
1301 else 1306 else