When cont_prepare_write() is padding out the "hole" with zeroed pages it
doesn't increase i_size at the same time. If writeback comes in during the
execution of cont_prepare_write(), block_write_full_page() will think that
these pages are outside i_size and will just clean the page without writing
it.
Fix that up by using generic_commit_write(), which will advance i_size for
each page as it is dirtied.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>