Re: [PATCH] ext4: evict inline data when writing to memory map
From: Eric Biggers <hidden>
Date: 2017-03-14 23:32:43
Also in:
stable
From: Eric Biggers <hidden>
Date: 2017-03-14 23:32:43
Also in:
stable
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