|
@@ -74,6 +74,10 @@ size_t copy_page_to_iter(struct page *page, size_t offset, size_t bytes,
|
|
}
|
|
}
|
|
kunmap(page);
|
|
kunmap(page);
|
|
done:
|
|
done:
|
|
|
|
+ if (skip == iov->iov_len) {
|
|
|
|
+ iov++;
|
|
|
|
+ skip = 0;
|
|
|
|
+ }
|
|
i->count -= wanted - bytes;
|
|
i->count -= wanted - bytes;
|
|
i->nr_segs -= iov - i->iov;
|
|
i->nr_segs -= iov - i->iov;
|
|
i->iov = iov;
|
|
i->iov = iov;
|
|
@@ -152,6 +156,10 @@ size_t copy_page_from_iter(struct page *page, size_t offset, size_t bytes,
|
|
}
|
|
}
|
|
kunmap(page);
|
|
kunmap(page);
|
|
done:
|
|
done:
|
|
|
|
+ if (skip == iov->iov_len) {
|
|
|
|
+ iov++;
|
|
|
|
+ skip = 0;
|
|
|
|
+ }
|
|
i->count -= wanted - bytes;
|
|
i->count -= wanted - bytes;
|
|
i->nr_segs -= iov - i->iov;
|
|
i->nr_segs -= iov - i->iov;
|
|
i->iov = iov;
|
|
i->iov = iov;
|