diff --git a/fs/nfs/file.c b/fs/nfs/file.c
index e4a33e66f4174b4d37565aa5786f97ff2e934da5..7086d5677ed3a6afaa8517f098921beb5613c600 100644
--- a/fs/nfs/file.c
+++ b/fs/nfs/file.c
@@ -299,7 +299,7 @@ static int nfs_want_read_modify_write(struct file *file, struct page *page,
 	unsigned int end = offset + len;
 
 	if (pnfs_ld_read_whole_page(file->f_mapping->host)) {
-		if (!PageUptodate(page))
+		if (!PageUptodate(page) && !PagePrivate(page))
 			return 1;
 		return 0;
 	}