]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
MClientRequest: handle ext_num_retry and ext_num_fwd from ceph_mds_request_head_legacy 54410/head
authorAlexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
Mon, 23 Oct 2023 12:34:26 +0000 (14:34 +0200)
committerAlexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
Wed, 8 Nov 2023 06:45:28 +0000 (07:45 +0100)
When a client is too old and uses struct ceph_mds_request_head_legacy we must
fill new ext_num_retry and ext_num_fwd fields from an old num_retry and num_fwd.

Fixes: https://github.com/ceph/ceph/pull/45669
Fixes: https://tracker.ceph.com/issues/63288
Fixes: commit cbd7e3040208 ("ceph_fs.h: add 32 bits extended num_retry and num_fwd support")
Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
(cherry picked from commit 43f32a46aa9095b19525357ba7ca215e842b4f77)

src/messages/MClientRequest.h

index 516fdb5e2d79032e2478a8a7c8089b4630c389b0..396e67f1e0fa7f9892bcae1ec6db35bde3b717aa 100644 (file)
@@ -224,6 +224,9 @@ public:
       copy_from_legacy_head(&head, &old_mds_head);
       head.version = 0;
 
+      head.ext_num_retry = head.num_retry;
+      head.ext_num_fwd = head.num_fwd;
+
       /* Can't set the btime from legacy struct */
       if (head.op == CEPH_MDS_OP_SETATTR) {
        int localmask = head.args.setattr.mask;