libceph: make r_request msg_size calculation clearer
authorIlya Dryomov <idryomov@gmail.com>
Thu, 11 Feb 2016 12:09:15 +0000 (13:09 +0100)
committerIlya Dryomov <idryomov@gmail.com>
Fri, 25 Mar 2016 17:51:42 +0000 (18:51 +0100)
Although msg_size is calculated correctly, the terms are grouped in
a misleading way - snaps appears to not have room for a u32 length.
Move calculation closer to its use and regroup terms.

No functional change.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
net/ceph/osd_client.c

index 1048edb443431783ae5c5f772887fd55b3432f66..109d1f82cac5d86f218181d5e836b03a088c2b91 100644 (file)
@@ -372,16 +372,6 @@ struct ceph_osd_request *ceph_osdc_alloc_request(struct ceph_osd_client *osdc,
        BUILD_BUG_ON(CEPH_OSD_MAX_OP > U16_MAX);
        BUG_ON(num_ops > CEPH_OSD_MAX_OP);
 
-       msg_size = 4 + 4 + 8 + 8 + 4+8;
-       msg_size += 2 + 4 + 8 + 4 + 4; /* oloc */
-       msg_size += 1 + 8 + 4 + 4;     /* pg_t */
-       msg_size += 4 + CEPH_MAX_OID_NAME_LEN; /* oid */
-       msg_size += 2 + num_ops*sizeof(struct ceph_osd_op);
-       msg_size += 8;  /* snapid */
-       msg_size += 8;  /* snap_seq */
-       msg_size += 8 * (snapc ? snapc->num_snaps : 0);  /* snaps */
-       msg_size += 4;
-
        if (use_mempool) {
                req = mempool_alloc(osdc->req_mempool, gfp_flags);
                memset(req, 0, sizeof(*req));
@@ -420,6 +410,17 @@ struct ceph_osd_request *ceph_osdc_alloc_request(struct ceph_osd_client *osdc,
        }
        req->r_reply = msg;
 
+       msg_size = 4 + 4 + 4; /* client_inc, osdmap_epoch, flags */
+       msg_size += 4 + 4 + 4 + 8; /* mtime, reassert_version */
+       msg_size += 2 + 4 + 8 + 4 + 4; /* oloc */
+       msg_size += 1 + 8 + 4 + 4; /* pgid */
+       msg_size += 4 + CEPH_MAX_OID_NAME_LEN; /* oid */
+       msg_size += 2 + num_ops * sizeof(struct ceph_osd_op);
+       msg_size += 8; /* snapid */
+       msg_size += 8; /* snap_seq */
+       msg_size += 4 + 8 * (snapc ? snapc->num_snaps : 0); /* snaps */
+       msg_size += 4; /* retry_attempt */
+
        /* create request message; allow space for oid */
        if (use_mempool)
                msg = ceph_msgpool_get(&osdc->msgpool_op, 0);