And no such iterator in mainstream kernel as well =>
good reason to drop it.

To_merge: 3f4f3e9c9d8e ("mm: extend generic iov iterator API")

Signed-off-by: Konstantin Khorenko <khore...@virtuozzo.com>
---
 include/linux/fs.h |  26 ---------
 mm/iov-iter.c      | 141 ---------------------------------------------
 2 files changed, 167 deletions(-)

diff --git a/include/linux/fs.h b/include/linux/fs.h
index d4c143fa7212..f30f19fa0b33 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -337,7 +337,6 @@ enum iter_type {
        ITER_BVEC       = 16,   /* ii_bvec_ops  */
        ITER_PIPE       = 32,   /* ms type, not used in vzkernel */
        ITER_DISCARD    = 64,   /* ms type, not used in vzkernel */
-       ITER_PAGE       = 128,  /* ii_page_ops, currently not used */
        ITER_PLAIN      = 256,  /* ii_plain_ops */
        ITER_BAD        = 512,  /* ii_bad_ops   */
 };
@@ -361,7 +360,6 @@ struct iov_iter {
 };
 
 extern struct iov_iter_ops ii_bvec_ops;
-extern struct iov_iter_ops ii_page_ops;
 extern struct iov_iter_ops ii_iovec_ops;
 extern struct iov_iter_ops ii_bad_ops;
 extern struct iov_iter_ops ii_plain_ops;
@@ -383,8 +381,6 @@ static inline struct iov_iter_ops *iov_iter_get_ops(const 
struct iov_iter *iter)
        case ITER_DISCARD:
                return lalala;
        */
-       case ITER_PAGE:
-               return &ii_page_ops;
        case ITER_PLAIN:
                return &ii_plain_ops;
        case ITER_BAD:
@@ -516,28 +512,6 @@ static inline struct bio_vec *iov_iter_bvec(struct 
iov_iter *i)
        return (struct bio_vec *)i->data;
 }
 
-static inline void iov_iter_init_page(struct iov_iter *i,
-                                     struct page *page,
-                                     size_t count, size_t written)
-{
-       i->type = ITER_PAGE;
-       i->data = (unsigned long)page;
-       i->nr_segs = 1;
-       i->iov_offset = 0;
-       i->count = count + written;
-
-       iov_iter_advance(i, written);
-}
-static inline int iov_iter_has_page(struct iov_iter *i)
-{
-       return i->type == ITER_PAGE;
-}
-static inline struct page *iov_iter_page(struct iov_iter *i)
-{
-       BUG_ON(!iov_iter_has_page(i));
-       return (struct page *)i->data;
-}
-
 static inline void iov_iter_init_plain(struct iov_iter *i, void *data,
                                       size_t count, size_t written)
 {
diff --git a/mm/iov-iter.c b/mm/iov-iter.c
index 04d92fb9bfcf..99ededb7f2cc 100644
--- a/mm/iov-iter.c
+++ b/mm/iov-iter.c
@@ -626,147 +626,6 @@ struct iov_iter_ops ii_bvec_ops = {
 };
 EXPORT_SYMBOL(ii_bvec_ops);
 
-/* Functions to get on with single page */
-
-static void *ii_page_kmap_atomic(const struct iov_iter *iter, void **bp,
-                                size_t *len)
-{
-       struct page *page = (struct page *)iter->data;
-       void *map;
-
-       BUG_ON(iter->iov_offset >= PAGE_SIZE);
-       map = kmap_atomic(page);
-       *bp = map + iter->iov_offset;
-       *len = iter->count;
-       return map;
-}
-
-static struct page *ii_page_kmap(const struct iov_iter *iter, void **bp,
-                                size_t *len)
-{
-       struct page *page = (struct page *)iter->data;
-       void *map;
-
-       BUG_ON(iter->iov_offset >= PAGE_SIZE);
-       map = kmap(page);
-       *bp = map + iter->iov_offset;
-       *len = iter->count;
-       return page;
-}
-
-static struct page *ii_page_get_page(const struct iov_iter *iter, size_t *off,
-                                    size_t *len)
-{
-       struct page *page = (struct page *)iter->data;
-
-       if (!get_page_is_safe(page))
-               return NULL;
-
-       *off = iter->iov_offset;
-       *len = iter->count;
-       get_page(page);
-
-       return page;
-}
-
-static size_t page_copy_tofrom_page(struct iov_iter *iter, struct page *page,
-                                   unsigned long page_offset, size_t bytes,
-                                   int topage)
-{
-       struct page *ipage = (struct page *)iter->data;
-       size_t ipage_offset = iter->iov_offset;
-       void *ipage_map;
-       void *page_map;
-
-       BUG_ON(bytes > iter->count);
-       BUG_ON(bytes > PAGE_SIZE - ipage_offset);
-       BUG_ON(ipage_offset >= PAGE_SIZE);
-
-       page_map = kmap_atomic(page);
-       ipage_map = kmap_atomic(ipage);
-
-       if (topage)
-               memcpy(page_map + page_offset,
-                      ipage_map + ipage_offset,
-                      bytes);
-       else
-               memcpy(ipage_map + ipage_offset,
-                      page_map + page_offset,
-                      bytes);
-
-       kunmap_atomic(ipage_map);
-       kunmap_atomic(page_map);
-
-       return bytes;
-}
-
-size_t ii_page_copy_to_user_atomic(struct page *page, struct iov_iter *i,
-                                  unsigned long offset, size_t bytes)
-{
-       return page_copy_tofrom_page(i, page, offset, bytes, 0);
-}
-size_t ii_page_copy_to_user(struct page *page, struct iov_iter *i,
-                                  unsigned long offset, size_t bytes)
-{
-       return page_copy_tofrom_page(i, page, offset, bytes, 0);
-}
-size_t ii_page_copy_from_user_atomic(struct page *page, struct iov_iter *i,
-                                    unsigned long offset, size_t bytes)
-{
-       return page_copy_tofrom_page(i, page, offset, bytes, 1);
-}
-size_t ii_page_copy_from_user(struct page *page, struct iov_iter *i,
-                             unsigned long offset, size_t bytes)
-{
-       return page_copy_tofrom_page(i, page, offset, bytes, 1);
-}
-
-void ii_page_advance(struct iov_iter *i, size_t bytes)
-{
-       BUG_ON(i->count < bytes);
-       BUG_ON(i->iov_offset >= PAGE_SIZE);
-       BUG_ON(bytes > PAGE_SIZE - i->iov_offset);
-
-       i->iov_offset += bytes;
-       i->count      -= bytes;
-}
-
-/*
- * pages pointed to by bio_vecs are always pinned.
- */
-int ii_page_fault_in_readable(struct iov_iter *i, size_t bytes)
-{
-       return 0;
-}
-
-size_t ii_page_single_seg_count(const struct iov_iter *i)
-{
-       BUG_ON(i->nr_segs != 1);
-
-       return i->count;
-}
-
-static int ii_page_shorten(struct iov_iter *i, size_t count)
-{
-       return -EINVAL;
-}
-
-struct iov_iter_ops ii_page_ops = {
-       .ii_copy_to_user_atomic = ii_page_copy_to_user_atomic,
-       .ii_copy_to_user = ii_page_copy_to_user,
-       .ii_copy_from_user_atomic = ii_page_copy_from_user_atomic,
-       .ii_copy_from_user = ii_page_copy_from_user,
-       .ii_advance = ii_page_advance,
-       .ii_fault_in_readable = ii_page_fault_in_readable,
-       .ii_single_seg_count = ii_page_single_seg_count,
-       .ii_shorten = ii_page_shorten,
-       .ii_kmap_atomic = ii_page_kmap_atomic,
-       .ii_kmap = ii_page_kmap,
-       .ii_get_page = ii_page_get_page,
-
-};
-EXPORT_SYMBOL(ii_page_ops);
-
 static inline size_t ii_bad_copy_to_user_atomic(struct page *p,
                                                struct iov_iter *i,
                                                unsigned long off, size_t cnt)
-- 
2.24.3

_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to