diff options
author | Henry C Chang <henry_c_chang@tcloudcomputing.com> | 2010-12-15 20:45:41 -0800 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2010-12-17 09:54:40 -0800 |
commit | b6aa5901c7a2bd90d0b6b9866300d2648b2568f3 (patch) | |
tree | 1161ed9dbacb7ace73c5d48fc9acd1db0d7815d5 /include/linux/ceph | |
parent | 92cf765237e2787eb168096305c448caf25ac7f8 (diff) | |
download | kernel_goldelico_gta04-b6aa5901c7a2bd90d0b6b9866300d2648b2568f3.zip kernel_goldelico_gta04-b6aa5901c7a2bd90d0b6b9866300d2648b2568f3.tar.gz kernel_goldelico_gta04-b6aa5901c7a2bd90d0b6b9866300d2648b2568f3.tar.bz2 |
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/linux/ceph')
-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 9e76d35..72c72bf 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, |