diff --git a/fs/erofs/zmap.c b/fs/erofs/zmap.c
index 9b248ee5fef2d26e0fae60d67e0c4318d8a1f0bd..74d3d7bffcf3f1976ca41c6036a62ad0b3e2d1b4 100644
--- a/fs/erofs/zmap.c
+++ b/fs/erofs/zmap.c
@@ -711,6 +711,8 @@ int z_erofs_map_blocks_iter(struct inode *inode, struct erofs_map_blocks *map,
 
 	err = z_erofs_do_map_blocks(inode, map, flags);
 out:
+	if (err)
+		map->m_llen = 0;
 	trace_z_erofs_map_blocks_iter_exit(inode, map, flags, err);
 	return err;
 }