--- 2.4.20rc2aa1/fs/nfs/write.c.~1~	2002-11-27 10:04:33.000000000 +0100
+++ 2.4.20rc2aa1/fs/nfs/write.c	2002-11-27 18:02:02.000000000 +0100
@@ -246,12 +243,16 @@ do_it:
 	lock_kernel();
 	if (NFS_SERVER(inode)->wsize >= PAGE_CACHE_SIZE && !IS_SYNC(inode)) {
 		err = nfs_writepage_async(NULL, inode, page, 0, offset);
-		if (err >= 0)
+		if (likely(err >= 0))
 			err = 0;
+		else
+			SetPageDirty(page);
 	} else {
 		err = nfs_writepage_sync(NULL, inode, page, 0, offset); 
-		if (err == offset)
+		if (likely(err == offset))
 			err = 0;
+		else
+			SetPageDirty(page);
 	}
 	unlock_kernel();
 out: