On Mon, Mar 13, 2017 at 04:33:13PM -0700, Christoph Hellwig wrote:
quoted
mkfs.ext4 -O inline_data /dev/vdb
mount /dev/vdb /mnt
xfs_io -f /mnt/file \
-c 'pwrite 0 1' \
-c 'mmap -w 0 1m' \
-c 'mwrite 0 1' \
-c 'fsync'
Please add this test case to xfstests.
I'm working on this, and I discovered there's still a bug. After the data is
written with mwrite, if the filesystem is then mount-cycled, the contents of the
file are the old contents rather than the new contents.
I believe this is caused by a bug in ext4_convert_inline_data(). Specifically,
the new block containing the evicted data is journalled using a buffer_head
associated with the block device. This is wrong because it can overwrite data
that is later written through non-journalled writeback.
I'll look into this more when I have time, but in any case it appears this fix
isn't complete.
Eric