summaryrefslogtreecommitdiffstats
path: root/fs/ceph/file.c
diff options
context:
space:
mode:
authorAlex Elder <elder@inktank.com>2013-04-05 01:27:12 -0500
committerSage Weil <sage@inktank.com>2013-05-01 21:18:23 -0700
commita4ce40a9a7c1053ac2a41cf64255e44e356e5522 (patch)
treede1aeb42625f19f6cfe8806db333ec853de0f5b7 /fs/ceph/file.c
parent39b44cbe86db42e70693787b2ede81c309925d0b (diff)
downloadlinux-a4ce40a9a7c1053ac2a41cf64255e44e356e5522.tar.gz
linux-a4ce40a9a7c1053ac2a41cf64255e44e356e5522.tar.bz2
linux-a4ce40a9a7c1053ac2a41cf64255e44e356e5522.zip
libceph: combine initializing and setting osd data
This ends up being a rather large patch but what it's doing is somewhat straightforward. Basically, this is replacing two calls with one. The first of the two calls is initializing a struct ceph_osd_data with data (either a page array, a page list, or a bio list); the second is setting an osd request op so it associates that data with one of the op's parameters. In place of those two will be a single function that initializes the op directly. That means we sort of fan out a set of the needed functions: - extent ops with pages data - extent ops with pagelist data - extent ops with bio list data and - class ops with page data for receiving a response We also have define another one, but it's only used internally: - class ops with pagelist data for request parameters Note that we *still* haven't gotten rid of the osd request's r_data_in and r_data_out fields. All the osd ops refer to them for their data. For now, these data fields are pointers assigned to the appropriate r_data_* field when these new functions are called. Signed-off-by: Alex Elder <elder@inktank.com> Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Diffstat (limited to 'fs/ceph/file.c')
-rw-r--r--fs/ceph/file.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/ceph/file.c b/fs/ceph/file.c
index cddc10fd7cf9..0f9c4095614b 100644
--- a/fs/ceph/file.c
+++ b/fs/ceph/file.c
@@ -574,8 +574,7 @@ more:
own_pages = true;
}
}
- BUG_ON(req->r_ops[0].extent.osd_data != &req->r_data_out);
- ceph_osd_data_pages_init(req->r_ops[0].extent.osd_data, pages, len,
+ osd_req_op_extent_osd_data_pages(req, 0, true, pages, len,
page_align, false, own_pages);
/* BUG_ON(vino.snap != CEPH_NOSNAP); */