libceph: move message allocation out of ceph_osdc_alloc_request()
The size of ->r_request and ->r_reply messages depends on the size of the object name (ceph_object_id), while the size of ceph_osd_request is fixed. Move message allocation into a separate function that would have to be called after ceph_object_id and ceph_object_locator (which is also going to become variable in size with RADOS namespaces) have been filled in: req = ceph_osdc_alloc_request(...); <fill in req->r_base_oid> <fill in req->r_base_oloc> ceph_osdc_alloc_messages(req); Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
@@ -322,6 +322,7 @@ extern struct ceph_osd_request *ceph_osdc_alloc_request(struct ceph_osd_client *
|
||||
unsigned int num_ops,
|
||||
bool use_mempool,
|
||||
gfp_t gfp_flags);
|
||||
int ceph_osdc_alloc_messages(struct ceph_osd_request *req, gfp_t gfp);
|
||||
|
||||
extern void ceph_osdc_build_request(struct ceph_osd_request *req, u64 off,
|
||||
struct ceph_snap_context *snapc,
|
||||
|
Reference in New Issue
Block a user