diff -u --recursive --new-file linux-2.4.19-odirect/fs/nfs/write.c linux-2.4.19-noac/fs/nfs/write.c
--- linux-2.4.19-odirect/fs/nfs/write.c	Tue Apr 16 15:59:03 2002
+++ linux-2.4.19-noac/fs/nfs/write.c	Tue Apr 16 16:01:02 2002
@@ -794,8 +794,15 @@
 	 * If wsize is smaller than page size, update and write
 	 * page synchronously.
 	 */
-	if (NFS_SERVER(inode)->wsize < PAGE_CACHE_SIZE || IS_SYNC(inode))
-		return nfs_writepage_sync(file, inode, page, offset, count);
+	if (NFS_SERVER(inode)->wsize < PAGE_CACHE_SIZE || IS_SYNC(inode)) {
+		status = nfs_writepage_sync(file, inode, page, offset, count);
+		if (status > 0) {
+			if (offset == 0 && status == PAGE_CACHE_SIZE)
+				SetPageUptodate(page);
+			return 0;
+		}
+		return status;
+	}
 
 	/*
 	 * Try to find an NFS request corresponding to this page
