If get_block() returns -ENOSPC __block_write_full_page() is currently
clearing PG_uptodate.

Tht doesn't make any sense - failure to allocate space (or an IO error) does
not make the page not uptodate.  It will create pages which are dirty, mapped
into pagetables and not uptodate, which is a nonsensical state.




 fs/buffer.c |    1 -
 1 files changed, 1 deletion(-)

diff -puN fs/buffer.c~dont-clear-PG_uptodate-on-ENOSPC fs/buffer.c
--- 25/fs/buffer.c~dont-clear-PG_uptodate-on-ENOSPC	2003-04-12 16:21:06.000000000 -0700
+++ 25-akpm/fs/buffer.c	2003-04-12 16:21:06.000000000 -0700
@@ -1754,7 +1754,6 @@ recover:
 	 * exposing stale data.
 	 * The page is currently locked and not marked for writeback
 	 */
-	ClearPageUptodate(page);
 	bh = head;
 	/* Recovery: lock and submit the mapped buffers */
 	do {

_