diff --git a/fs/iomap.c b/fs/iomap.c
index efd92e08aa266d45eb931cfa4baa6e7319daf668..57164400077d392ae0a171feb49cbfa9dd215223 100644
--- a/fs/iomap.c
+++ b/fs/iomap.c
@@ -653,6 +653,7 @@ __iomap_write_begin(struct inode *inode, loff_t pos, unsigned len,
 
 	if (PageUptodate(page))
 		return 0;
+	ClearPageError(page);
 
 	do {
 		iomap_adjust_read_range(inode, iop, &block_start,