Thread (6 messages) 6 messages, 4 authors, 2017-05-01

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

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help