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.
|