Lines Matching refs:pages
19 struct page **pages; in ceph_get_direct_page_vector() local
23 pages = kmalloc_array(num_pages, sizeof(*pages), GFP_NOFS); in ceph_get_direct_page_vector()
24 if (!pages) in ceph_get_direct_page_vector()
30 num_pages - got, write_page, pages + got); in ceph_get_direct_page_vector()
38 return pages; in ceph_get_direct_page_vector()
41 ceph_put_page_vector(pages, got, false); in ceph_get_direct_page_vector()
46 void ceph_put_page_vector(struct page **pages, int num_pages, bool dirty) in ceph_put_page_vector() argument
52 set_page_dirty_lock(pages[i]); in ceph_put_page_vector()
53 put_page(pages[i]); in ceph_put_page_vector()
55 kvfree(pages); in ceph_put_page_vector()
59 void ceph_release_page_vector(struct page **pages, int num_pages) in ceph_release_page_vector() argument
64 __free_pages(pages[i], 0); in ceph_release_page_vector()
65 kfree(pages); in ceph_release_page_vector()
74 struct page **pages; in ceph_alloc_page_vector() local
77 pages = kmalloc_array(num_pages, sizeof(*pages), flags); in ceph_alloc_page_vector()
78 if (!pages) in ceph_alloc_page_vector()
81 pages[i] = __page_cache_alloc(flags); in ceph_alloc_page_vector()
82 if (pages[i] == NULL) { in ceph_alloc_page_vector()
83 ceph_release_page_vector(pages, i); in ceph_alloc_page_vector()
87 return pages; in ceph_alloc_page_vector()
94 int ceph_copy_user_to_page_vector(struct page **pages, in ceph_copy_user_to_page_vector() argument
105 bad = copy_from_user(page_address(pages[i]) + po, data, l); in ceph_copy_user_to_page_vector()
120 void ceph_copy_to_page_vector(struct page **pages, in ceph_copy_to_page_vector() argument
131 memcpy(page_address(pages[i]) + po, data, l); in ceph_copy_to_page_vector()
143 void ceph_copy_from_page_vector(struct page **pages, in ceph_copy_from_page_vector() argument
154 memcpy(data, page_address(pages[i]) + po, l); in ceph_copy_from_page_vector()
170 void ceph_zero_page_vector_range(int off, int len, struct page **pages) in ceph_zero_page_vector_range() argument
181 dout("zeroing %d %p head from %d\n", i, pages[i], in ceph_zero_page_vector_range()
183 zero_user_segment(pages[i], off, end); in ceph_zero_page_vector_range()
188 dout("zeroing %d %p len=%d\n", i, pages[i], len); in ceph_zero_page_vector_range()
189 zero_user_segment(pages[i], 0, PAGE_SIZE); in ceph_zero_page_vector_range()
195 dout("zeroing %d %p tail to %d\n", i, pages[i], (int)len); in ceph_zero_page_vector_range()
196 zero_user_segment(pages[i], 0, len); in ceph_zero_page_vector_range()