ext4: avoid split extents for DAX writes
authorJan Kara <jack@suse.cz>
Sun, 20 Nov 2016 23:10:09 +0000 (18:10 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 20 Nov 2016 23:10:09 +0000 (18:10 -0500)
commit96f8ba3dd632aff684cc7c67d9f4af435be0341c
tree37f21f25ad22a196966ce2a9ead0e4f695ccd17b
parent776722e85d3b0936253ecc3d14db4fba37f191ba
ext4: avoid split extents for DAX writes

Currently mapping of blocks for DAX writes happen with
EXT4_GET_BLOCKS_PRE_IO flag set. That has a result that each
ext4_map_blocks() call creates a separate written extent, although it
could be merged to the neighboring extents in the extent tree.  The
reason for using this flag is that in case the extent is unwritten, we
need to convert it to written one and zero it out. However this "convert
mapped range to written" operation is already implemented by
ext4_map_blocks() for the case of data writes into unwritten extent. So
just use flags for that mode of operation, simplify the code, and avoid
unnecessary split extents.

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/inode.c