summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorHenry C Chang <henry_c_chang@tcloudcomputing.com>2010-12-16 05:45:41 +0100
committerSage Weil <sage@newdream.net>2010-12-17 18:54:40 +0100
commitb6aa5901c7a2bd90d0b6b9866300d2648b2568f3 (patch)
tree1161ed9dbacb7ace73c5d48fc9acd1db0d7815d5 /include
parentceph: fix null pointer dereference in ceph_init_dentry for nfs reexport (diff)
downloadlinux-b6aa5901c7a2bd90d0b6b9866300d2648b2568f3.tar.xz
linux-b6aa5901c7a2bd90d0b6b9866300d2648b2568f3.zip
ceph: mark user pages dirty on direct-io reads
For read operation, we have to set the argument _write_ of get_user_pages to 1 since we will write data to pages. Also, we need to SetPageDirty before releasing these pages. Signed-off-by: Henry C Chang <henry_c_chang@tcloudcomputing.com> Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'include')
-rw-r--r--include/linux/ceph/libceph.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/include/linux/ceph/libceph.h b/include/linux/ceph/libceph.h
index 9e76d35670d2..72c72bfccb88 100644
--- a/include/linux/ceph/libceph.h
+++ b/include/linux/ceph/libceph.h
@@ -227,8 +227,10 @@ extern int ceph_open_session(struct ceph_client *client);
extern void ceph_release_page_vector(struct page **pages, int num_pages);
extern struct page **ceph_get_direct_page_vector(const char __user *data,
- int num_pages);
-extern void ceph_put_page_vector(struct page **pages, int num_pages);
+ int num_pages,
+ bool write_page);
+extern void ceph_put_page_vector(struct page **pages, int num_pages,
+ bool dirty);
extern void ceph_release_page_vector(struct page **pages, int num_pages);
extern struct page **ceph_alloc_page_vector(int num_pages, gfp_t flags);
extern int ceph_copy_user_to_page_vector(struct page **pages,