From 93f560d9a483b4f389056e543012d0941734a8f4 Mon Sep 17 00:00:00 2001 From: Ritesh Harjani Date: Tue, 20 Aug 2019 18:36:33 +0530 Subject: [PATCH 3/6] ext4: Move ext4 bmap to use iomap infrastructure. ext4_iomap_begin is already implemented which provides ext4_map_blocks, so just move the API from generic_block_bmap to iomap_bmap for iomap conversion. Also no need to call for filemap_write_and_wait() any more in ext4_bmap since data=journal mode anyway doesn't support delalloc and for all other cases iomap_bmap() anyway calls the same function, so no need for doing it twice. Signed-off-by: Ritesh Harjani --- fs/ext4/inode.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 6cf3b969dc86..fac8adbbb3f6 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -3174,16 +3174,6 @@ static sector_t ext4_bmap(struct address_space *mapping, sector_t block) if (ext4_has_inline_data(inode)) return 0; - if (mapping_tagged(mapping, PAGECACHE_TAG_DIRTY) && - test_opt(inode->i_sb, DELALLOC)) { - /* - * With delalloc we want to sync the file - * so that we can make sure we allocate - * blocks for file - */ - filemap_write_and_wait(mapping); - } - if (EXT4_JOURNAL(inode) && ext4_test_inode_state(inode, EXT4_STATE_JDATA)) { /* @@ -3214,7 +3204,7 @@ static sector_t ext4_bmap(struct address_space *mapping, sector_t block) return 0; } - return generic_block_bmap(mapping, block, ext4_get_block); + return iomap_bmap(mapping, block, &ext4_iomap_ops); } static int ext4_readpage(struct file *file, struct page *page) -- 2.21.0