Use non-temporal copy for Cross Memory Attach for performance.

Signed-off-by: Daniel J Blueman <daniel@numascale.com>

diff --git a/lib/iov_iter.c b/lib/iov_iter.c
index 7e3138c..6b0c4a2 100644
--- a/lib/iov_iter.c
+++ b/lib/iov_iter.c
@@ -178,7 +178,7 @@ static size_t copy_page_to_iter_iovec(struct page *page, size_t offset, size_t b
 
 	kaddr = kmap(page);
 	from = kaddr + offset;
-	left = __copy_to_user(buf, from, copy);
+	left = (i->type & WRITE) ? __copy_user_nocache(buf, from, copy, 1) : __copy_to_user(buf, from, copy);
 	copy -= left;
 	skip += copy;
 	from += copy;
@@ -187,7 +187,7 @@ static size_t copy_page_to_iter_iovec(struct page *page, size_t offset, size_t b
 		iov++;
 		buf = iov->iov_base;
 		copy = min(bytes, iov->iov_len);
-		left = __copy_to_user(buf, from, copy);
+		left = (i->type & WRITE) ? __copy_user_nocache(buf, from, copy, 1) : __copy_to_user(buf, from, copy);
 		copy -= left;
 		skip = copy;
 		from += copy;
