diff options
author | Henry C Chang <henry_c_chang@tcloudcomputing.com> | 2010-12-16 05:45:41 +0100 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2010-12-17 18:54:40 +0100 |
commit | b6aa5901c7a2bd90d0b6b9866300d2648b2568f3 (patch) | |
tree | 1161ed9dbacb7ace73c5d48fc9acd1db0d7815d5 /include | |
parent | ceph: fix null pointer dereference in ceph_init_dentry for nfs reexport (diff) | |
download | linux-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.h | 6 |
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, |