From: Lachlan McIlroy Date: Mon, 22 Dec 2008 06:56:49 +0000 (+1100) Subject: [XFS] Fix speculative allocation beyond eof X-Git-Tag: v2.6.29-rc1~552^2~4 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9f6c92b9cc2fd41d6c7b493be5637cc5b5659880;p=pandora-kernel.git [XFS] Fix speculative allocation beyond eof 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. Reviewed-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy --- Reading git-diff-tree failed