Commit ca9706a2 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs

Pull iov_iter infrastructure updates from Al Viro:
 "A couple of iov_iter updates"

* 'work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  iov_iter: export import_single_range()
  iov_iter: constify {csum_and_,}copy_to_iter()
parents fce205e9 e1267585
...@@ -82,7 +82,7 @@ size_t copy_page_to_iter(struct page *page, size_t offset, size_t bytes, ...@@ -82,7 +82,7 @@ size_t copy_page_to_iter(struct page *page, size_t offset, size_t bytes,
struct iov_iter *i); struct iov_iter *i);
size_t copy_page_from_iter(struct page *page, size_t offset, size_t bytes, size_t copy_page_from_iter(struct page *page, size_t offset, size_t bytes,
struct iov_iter *i); struct iov_iter *i);
size_t copy_to_iter(void *addr, size_t bytes, struct iov_iter *i); size_t copy_to_iter(const void *addr, size_t bytes, struct iov_iter *i);
size_t copy_from_iter(void *addr, size_t bytes, struct iov_iter *i); size_t copy_from_iter(void *addr, size_t bytes, struct iov_iter *i);
size_t copy_from_iter_nocache(void *addr, size_t bytes, struct iov_iter *i); size_t copy_from_iter_nocache(void *addr, size_t bytes, struct iov_iter *i);
size_t iov_iter_zero(size_t bytes, struct iov_iter *); size_t iov_iter_zero(size_t bytes, struct iov_iter *);
...@@ -145,7 +145,7 @@ static inline void iov_iter_reexpand(struct iov_iter *i, size_t count) ...@@ -145,7 +145,7 @@ static inline void iov_iter_reexpand(struct iov_iter *i, size_t count)
{ {
i->count = count; i->count = count;
} }
size_t csum_and_copy_to_iter(void *addr, size_t bytes, __wsum *csum, struct iov_iter *i); size_t csum_and_copy_to_iter(const void *addr, size_t bytes, __wsum *csum, struct iov_iter *i);
size_t csum_and_copy_from_iter(void *addr, size_t bytes, __wsum *csum, struct iov_iter *i); size_t csum_and_copy_from_iter(void *addr, size_t bytes, __wsum *csum, struct iov_iter *i);
int import_iovec(int type, const struct iovec __user * uvector, int import_iovec(int type, const struct iovec __user * uvector,
......
...@@ -369,7 +369,7 @@ static void memcpy_from_page(char *to, struct page *page, size_t offset, size_t ...@@ -369,7 +369,7 @@ static void memcpy_from_page(char *to, struct page *page, size_t offset, size_t
kunmap_atomic(from); kunmap_atomic(from);
} }
static void memcpy_to_page(struct page *page, size_t offset, char *from, size_t len) static void memcpy_to_page(struct page *page, size_t offset, const char *from, size_t len)
{ {
char *to = kmap_atomic(page); char *to = kmap_atomic(page);
memcpy(to + offset, from, len); memcpy(to + offset, from, len);
...@@ -383,9 +383,9 @@ static void memzero_page(struct page *page, size_t offset, size_t len) ...@@ -383,9 +383,9 @@ static void memzero_page(struct page *page, size_t offset, size_t len)
kunmap_atomic(addr); kunmap_atomic(addr);
} }
size_t copy_to_iter(void *addr, size_t bytes, struct iov_iter *i) size_t copy_to_iter(const void *addr, size_t bytes, struct iov_iter *i)
{ {
char *from = addr; const char *from = addr;
if (unlikely(bytes > i->count)) if (unlikely(bytes > i->count))
bytes = i->count; bytes = i->count;
...@@ -704,10 +704,10 @@ size_t csum_and_copy_from_iter(void *addr, size_t bytes, __wsum *csum, ...@@ -704,10 +704,10 @@ size_t csum_and_copy_from_iter(void *addr, size_t bytes, __wsum *csum,
} }
EXPORT_SYMBOL(csum_and_copy_from_iter); EXPORT_SYMBOL(csum_and_copy_from_iter);
size_t csum_and_copy_to_iter(void *addr, size_t bytes, __wsum *csum, size_t csum_and_copy_to_iter(const void *addr, size_t bytes, __wsum *csum,
struct iov_iter *i) struct iov_iter *i)
{ {
char *from = addr; const char *from = addr;
__wsum sum, next; __wsum sum, next;
size_t off = 0; size_t off = 0;
if (unlikely(bytes > i->count)) if (unlikely(bytes > i->count))
...@@ -849,3 +849,4 @@ int import_single_range(int rw, void __user *buf, size_t len, ...@@ -849,3 +849,4 @@ int import_single_range(int rw, void __user *buf, size_t len,
iov_iter_init(i, rw, iov, 1, len); iov_iter_init(i, rw, iov, 1, len);
return 0; return 0;
} }
EXPORT_SYMBOL(import_single_range);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment