aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/ceph
diff options
context:
space:
mode:
authorAlex Elder <elder@inktank.com>2013-04-05 02:27:11 -0400
committerSage Weil <sage@inktank.com>2013-05-02 00:18:15 -0400
commitc99d2d4abb6c405ef52e9bc1da87b382b8f41739 (patch)
tree073ad414ec82f706a38300d38fe5c5a710d3098a /include/linux/ceph
parent8c042b0df99cd06ef8473ef6e204b87b3dc80158 (diff)
libceph: specify osd op by index in request
An osd request now holds all of its source op structures, and every place that initializes one of these is in fact initializing one of the entries in the the osd request's array. So rather than supplying the address of the op to initialize, have caller specify the osd request and an indication of which op it would like to initialize. This better hides the details the op structure (and faciltates moving the data pointers they use). Since osd_req_op_init() is a common routine, and it's not used outside the osd client code, give it static scope. Also make it return the address of the specified op (so all the other init routines don't have to repeat that code). Signed-off-by: Alex Elder <elder@inktank.com> Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Diffstat (limited to 'include/linux/ceph')
-rw-r--r--include/linux/ceph/osd_client.h19
1 files changed, 12 insertions, 7 deletions
diff --git a/include/linux/ceph/osd_client.h b/include/linux/ceph/osd_client.h
index ae5193550fbf..144d57cbef9e 100644
--- a/include/linux/ceph/osd_client.h
+++ b/include/linux/ceph/osd_client.h
@@ -233,20 +233,25 @@ extern void ceph_osdc_handle_reply(struct ceph_osd_client *osdc,
233extern void ceph_osdc_handle_map(struct ceph_osd_client *osdc, 233extern void ceph_osdc_handle_map(struct ceph_osd_client *osdc,
234 struct ceph_msg *msg); 234 struct ceph_msg *msg);
235 235
236extern void osd_req_op_init(struct ceph_osd_req_op *op, u16 opcode); 236extern void osd_req_op_extent_init(struct ceph_osd_request *osd_req,
237extern void osd_req_op_extent_init(struct ceph_osd_req_op *op, u16 opcode, 237 unsigned int which, u16 opcode,
238 u64 offset, u64 length, 238 u64 offset, u64 length,
239 u64 truncate_size, u32 truncate_seq); 239 u64 truncate_size, u32 truncate_seq);
240extern void osd_req_op_extent_update(struct ceph_osd_req_op *op, u64 length); 240extern void osd_req_op_extent_update(struct ceph_osd_request *osd_req,
241extern void osd_req_op_extent_osd_data(struct ceph_osd_req_op *op, 241 unsigned int which, u64 length);
242extern void osd_req_op_extent_osd_data(struct ceph_osd_request *osd_req,
243 unsigned int which,
242 struct ceph_osd_data *osd_data); 244 struct ceph_osd_data *osd_data);
243extern void osd_req_op_cls_init(struct ceph_osd_req_op *op, u16 opcode, 245extern void osd_req_op_cls_init(struct ceph_osd_request *osd_req,
246 unsigned int which, u16 opcode,
244 const char *class, const char *method, 247 const char *class, const char *method,
245 const void *request_data, 248 const void *request_data,
246 size_t request_data_size); 249 size_t request_data_size);
247extern void osd_req_op_cls_response_data(struct ceph_osd_req_op *op, 250extern void osd_req_op_cls_response_data(struct ceph_osd_request *osd_req,
251 unsigned int which,
248 struct ceph_osd_data *response_data); 252 struct ceph_osd_data *response_data);
249extern void osd_req_op_watch_init(struct ceph_osd_req_op *op, u16 opcode, 253extern void osd_req_op_watch_init(struct ceph_osd_request *osd_req,
254 unsigned int which, u16 opcode,
250 u64 cookie, u64 version, int flag); 255 u64 cookie, u64 version, int flag);
251 256
252extern struct ceph_osd_request *ceph_osdc_alloc_request(struct ceph_osd_client *osdc, 257extern struct ceph_osd_request *ceph_osdc_alloc_request(struct ceph_osd_client *osdc,