--- 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: