libceph: Remove unused pagevec functions
ceph_copy_user_to_page_vector() has been unused since 2013's commitpull/1084/mergee8344e6689("ceph: Implement writev/pwritev for sync operation.") ceph_copy_to_page_vector() has been unused since 2012's commit913d2fdcf6("rbd: always pass ops array to rbd_req_sync_op()") Remove them. Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org> Reviewed-by: Ilya Dryomov <idryomov@gmail.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
parent
03854920c3
commit
ee1eb8ccaa
|
|
@ -317,12 +317,6 @@ extern void ceph_release_page_vector(struct page **pages, int num_pages);
|
||||||
extern void ceph_put_page_vector(struct page **pages, int num_pages,
|
extern void ceph_put_page_vector(struct page **pages, int num_pages,
|
||||||
bool dirty);
|
bool dirty);
|
||||||
extern struct page **ceph_alloc_page_vector(int num_pages, gfp_t flags);
|
extern struct page **ceph_alloc_page_vector(int num_pages, gfp_t flags);
|
||||||
extern int ceph_copy_user_to_page_vector(struct page **pages,
|
|
||||||
const void __user *data,
|
|
||||||
loff_t off, size_t len);
|
|
||||||
extern void ceph_copy_to_page_vector(struct page **pages,
|
|
||||||
const void *data,
|
|
||||||
loff_t off, size_t len);
|
|
||||||
extern void ceph_copy_from_page_vector(struct page **pages,
|
extern void ceph_copy_from_page_vector(struct page **pages,
|
||||||
void *data,
|
void *data,
|
||||||
loff_t off, size_t len);
|
loff_t off, size_t len);
|
||||||
|
|
|
||||||
|
|
@ -55,58 +55,6 @@ struct page **ceph_alloc_page_vector(int num_pages, gfp_t flags)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(ceph_alloc_page_vector);
|
EXPORT_SYMBOL(ceph_alloc_page_vector);
|
||||||
|
|
||||||
/*
|
|
||||||
* copy user data into a page vector
|
|
||||||
*/
|
|
||||||
int ceph_copy_user_to_page_vector(struct page **pages,
|
|
||||||
const void __user *data,
|
|
||||||
loff_t off, size_t len)
|
|
||||||
{
|
|
||||||
int i = 0;
|
|
||||||
int po = off & ~PAGE_MASK;
|
|
||||||
int left = len;
|
|
||||||
int l, bad;
|
|
||||||
|
|
||||||
while (left > 0) {
|
|
||||||
l = min_t(int, PAGE_SIZE-po, left);
|
|
||||||
bad = copy_from_user(page_address(pages[i]) + po, data, l);
|
|
||||||
if (bad == l)
|
|
||||||
return -EFAULT;
|
|
||||||
data += l - bad;
|
|
||||||
left -= l - bad;
|
|
||||||
po += l - bad;
|
|
||||||
if (po == PAGE_SIZE) {
|
|
||||||
po = 0;
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return len;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(ceph_copy_user_to_page_vector);
|
|
||||||
|
|
||||||
void ceph_copy_to_page_vector(struct page **pages,
|
|
||||||
const void *data,
|
|
||||||
loff_t off, size_t len)
|
|
||||||
{
|
|
||||||
int i = 0;
|
|
||||||
size_t po = off & ~PAGE_MASK;
|
|
||||||
size_t left = len;
|
|
||||||
|
|
||||||
while (left > 0) {
|
|
||||||
size_t l = min_t(size_t, PAGE_SIZE-po, left);
|
|
||||||
|
|
||||||
memcpy(page_address(pages[i]) + po, data, l);
|
|
||||||
data += l;
|
|
||||||
left -= l;
|
|
||||||
po += l;
|
|
||||||
if (po == PAGE_SIZE) {
|
|
||||||
po = 0;
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(ceph_copy_to_page_vector);
|
|
||||||
|
|
||||||
void ceph_copy_from_page_vector(struct page **pages,
|
void ceph_copy_from_page_vector(struct page **pages,
|
||||||
void *data,
|
void *data,
|
||||||
loff_t off, size_t len)
|
loff_t off, size_t len)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue