On Wed 26-02-20 15:27:03, Ritesh Harjani wrote: > IOMAP_F_MERGED needs to be set in case of non-extent based mapping. > This is needed in later patches for conversion of ext4_fiemap to use iomap. > > Signed-off-by: Ritesh Harjani <riteshh@xxxxxxxxxxxxx> > --- > fs/ext4/inode.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c > index d035acab5b2a..3b4230cf0bc2 100644 > --- a/fs/ext4/inode.c > +++ b/fs/ext4/inode.c > @@ -3335,6 +3335,10 @@ static void ext4_set_iomap(struct inode *inode, struct iomap *iomap, > iomap->offset = (u64) map->m_lblk << blkbits; > iomap->length = (u64) map->m_len << blkbits; > > + if ((map->m_flags & (EXT4_MAP_UNWRITTEN | EXT4_MAP_MAPPED)) && > + !ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)) ^^ we indent the second line of condition either like: if ((map->m_flags & (EXT4_MAP_UNWRITTEN | EXT4_MAP_MAPPED)) && !ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)) or like: if ((map->m_flags & (EXT4_MAP_UNWRITTEN | EXT4_MAP_MAPPED)) && !ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)) But on at the same level as following code block because that's highly confusing at times... Also EXT4_MAP_UNWRITTEN is never set for indirect block mapped files (that on disk format does not support unwritten extents). Honza > + iomap->flags |= IOMAP_F_MERGED; > + > /* > * Flags passed to ext4_map_blocks() for direct I/O writes can result > * in m_flags having both EXT4_MAP_MAPPED and EXT4_MAP_UNWRITTEN bits > -- > 2.21.0 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR