[Fwd: [PATCH] Fix speculative allocation beyond eof]

Christoph Hellwig hch at infradead.org
Wed Dec 17 08:24:42 CST 2008


On Thu, Dec 04, 2008 at 06:18:28PM +1100, Lachlan McIlroy wrote:
> Speculative allocation beyond eof doesn't work properly.  It was broken some
> time ago after a code cleanup that moved what is now xfs_iomap_eof_align_last_fsb()
> and xfs_iomap_eof_want_preallocate() out of xfs_iomap_write_delay() into
> separate functions.  The code used to use the current file size in various checks
> but got changed to be max(file_size, i_new_size).  Since i_new_size is the result
> of 'offset + count' then in xfs_iomap_eof_want_preallocate() the check for
> '(offset + count) <= isize' will always be true.
> 
> ie if 'offset + count' is > ip->i_size then isize will be i_new_size and equal to
> 'offset + count'.
> 
> This change fixes all the places that used to use the current file size.

Looks good, we should be using the current i_size everywhere.




More information about the xfs mailing list