Lines Matching refs:pages
13 void ceph_put_page_vector(struct page **pages, int num_pages, bool dirty)
19 set_page_dirty_lock(pages[i]);
20 put_page(pages[i]);
22 kvfree(pages);
26 void ceph_release_page_vector(struct page **pages, int num_pages)
31 __free_pages(pages[i], 0);
32 kfree(pages);
37 * allocate a vector new pages
41 struct page **pages;
44 pages = kmalloc_array(num_pages, sizeof(*pages), flags);
45 if (!pages)
48 pages[i] = __page_cache_alloc(flags);
49 if (pages[i] == NULL) {
50 ceph_release_page_vector(pages, i);
54 return pages;
61 int ceph_copy_user_to_page_vector(struct page **pages,
72 bad = copy_from_user(page_address(pages[i]) + po, data, l);
87 void ceph_copy_to_page_vector(struct page **pages,
98 memcpy(page_address(pages[i]) + po, data, l);
110 void ceph_copy_from_page_vector(struct page **pages,
121 memcpy(data, page_address(pages[i]) + po, l);
137 void ceph_zero_page_vector_range(int off, int len, struct page **pages)
148 dout("zeroing %d %p head from %d\n", i, pages[i],
150 zero_user_segment(pages[i], off, end);
155 dout("zeroing %d %p len=%d\n", i, pages[i], len);
156 zero_user_segment(pages[i], 0, PAGE_SIZE);
162 dout("zeroing %d %p tail to %d\n", i, pages[i], (int)len);
163 zero_user_segment(pages[i], 0, len);