Lines Matching refs:pages
18 struct page **pages; in ceph_get_direct_page_vector() local
22 pages = kmalloc(sizeof(*pages) * num_pages, GFP_NOFS); in ceph_get_direct_page_vector()
23 if (!pages) in ceph_get_direct_page_vector()
29 num_pages - got, write_page, 0, pages + got); in ceph_get_direct_page_vector()
37 return pages; in ceph_get_direct_page_vector()
40 ceph_put_page_vector(pages, got, false); in ceph_get_direct_page_vector()
45 void ceph_put_page_vector(struct page **pages, int num_pages, bool dirty) in ceph_put_page_vector() argument
51 set_page_dirty_lock(pages[i]); in ceph_put_page_vector()
52 put_page(pages[i]); in ceph_put_page_vector()
54 if (is_vmalloc_addr(pages)) in ceph_put_page_vector()
55 vfree(pages); in ceph_put_page_vector()
57 kfree(pages); in ceph_put_page_vector()
61 void ceph_release_page_vector(struct page **pages, int num_pages) in ceph_release_page_vector() argument
66 __free_pages(pages[i], 0); in ceph_release_page_vector()
67 kfree(pages); in ceph_release_page_vector()
76 struct page **pages; in ceph_alloc_page_vector() local
79 pages = kmalloc(sizeof(*pages) * num_pages, flags); in ceph_alloc_page_vector()
80 if (!pages) in ceph_alloc_page_vector()
83 pages[i] = __page_cache_alloc(flags); in ceph_alloc_page_vector()
84 if (pages[i] == NULL) { in ceph_alloc_page_vector()
85 ceph_release_page_vector(pages, i); in ceph_alloc_page_vector()
89 return pages; in ceph_alloc_page_vector()
96 int ceph_copy_user_to_page_vector(struct page **pages, in ceph_copy_user_to_page_vector() argument
107 bad = copy_from_user(page_address(pages[i]) + po, data, l); in ceph_copy_user_to_page_vector()
122 void ceph_copy_to_page_vector(struct page **pages, in ceph_copy_to_page_vector() argument
133 memcpy(page_address(pages[i]) + po, data, l); in ceph_copy_to_page_vector()
145 void ceph_copy_from_page_vector(struct page **pages, in ceph_copy_from_page_vector() argument
156 memcpy(data, page_address(pages[i]) + po, l); in ceph_copy_from_page_vector()
172 void ceph_zero_page_vector_range(int off, int len, struct page **pages) in ceph_zero_page_vector_range() argument
183 dout("zeroing %d %p head from %d\n", i, pages[i], in ceph_zero_page_vector_range()
185 zero_user_segment(pages[i], off, end); in ceph_zero_page_vector_range()
190 dout("zeroing %d %p len=%d\n", i, pages[i], len); in ceph_zero_page_vector_range()
191 zero_user_segment(pages[i], 0, PAGE_CACHE_SIZE); in ceph_zero_page_vector_range()
197 dout("zeroing %d %p tail to %d\n", i, pages[i], (int)len); in ceph_zero_page_vector_range()
198 zero_user_segment(pages[i], 0, len); in ceph_zero_page_vector_range()