Re: [PATCH] ext4: evict inline data when writing to memory map

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]