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 kvfree(pages); in ceph_put_page_vector()
58 void ceph_release_page_vector(struct page **pages, int num_pages) in ceph_release_page_vector() argument
63 __free_pages(pages[i], 0); in ceph_release_page_vector()
64 kfree(pages); in ceph_release_page_vector()
73 struct page **pages; in ceph_alloc_page_vector() local
76 pages = kmalloc(sizeof(*pages) * num_pages, flags); in ceph_alloc_page_vector()
77 if (!pages) in ceph_alloc_page_vector()
80 pages[i] = __page_cache_alloc(flags); in ceph_alloc_page_vector()
81 if (pages[i] == NULL) { in ceph_alloc_page_vector()
82 ceph_release_page_vector(pages, i); in ceph_alloc_page_vector()
86 return pages; in ceph_alloc_page_vector()
93 int ceph_copy_user_to_page_vector(struct page **pages, in ceph_copy_user_to_page_vector() argument
104 bad = copy_from_user(page_address(pages[i]) + po, data, l); in ceph_copy_user_to_page_vector()
119 void ceph_copy_to_page_vector(struct page **pages, in ceph_copy_to_page_vector() argument
130 memcpy(page_address(pages[i]) + po, data, l); in ceph_copy_to_page_vector()
142 void ceph_copy_from_page_vector(struct page **pages, in ceph_copy_from_page_vector() argument
153 memcpy(data, page_address(pages[i]) + po, l); in ceph_copy_from_page_vector()
169 void ceph_zero_page_vector_range(int off, int len, struct page **pages) in ceph_zero_page_vector_range() argument
180 dout("zeroing %d %p head from %d\n", i, pages[i], in ceph_zero_page_vector_range()
182 zero_user_segment(pages[i], off, end); in ceph_zero_page_vector_range()
187 dout("zeroing %d %p len=%d\n", i, pages[i], len); in ceph_zero_page_vector_range()
188 zero_user_segment(pages[i], 0, PAGE_CACHE_SIZE); in ceph_zero_page_vector_range()
194 dout("zeroing %d %p tail to %d\n", i, pages[i], (int)len); in ceph_zero_page_vector_range()
195 zero_user_segment(pages[i], 0, len); in ceph_zero_page_vector_range()