diff --git a/fs/nfs/file.c b/fs/nfs/file.c
index 961e562c8a7a34b41a6a89d431cb191223625c8f..8b8d6a54140c28dbea5da0966189314715d8e676 100644
--- a/fs/nfs/file.c
+++ b/fs/nfs/file.c
@@ -397,7 +397,7 @@ static int nfs_write_end(struct file *file, struct address_space *mapping,
 	 */
 	if (!PageUptodate(page)) {
 		unsigned pglen = nfs_page_length(page);
-		unsigned end = offset + len;
+		unsigned end = offset + copied;
 
 		if (pglen == 0) {
 			zero_user_segments(page, 0, offset,