On Mon, Mar 13, 2017 at 04:33:13PM -0700, Christoph Hellwig wrote: > > 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