]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
blkin: osd op messages carry trace information
authorCasey Bodley <cbodley@redhat.com>
Tue, 25 Aug 2015 19:26:03 +0000 (15:26 -0400)
committerSage Weil <sage@redhat.com>
Fri, 5 May 2017 18:04:30 +0000 (14:04 -0400)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/messages/MOSDECSubOpRead.h
src/messages/MOSDECSubOpReadReply.h
src/messages/MOSDECSubOpWrite.h
src/messages/MOSDECSubOpWriteReply.h
src/messages/MOSDOp.h
src/messages/MOSDOpReply.h
src/messages/MOSDRepOp.h
src/messages/MOSDRepOpReply.h

index 4e8beeb2d40318b71983de1653f9dbec77131d5f..de9317e45a63c6920d66ecbf783e0b8acd0999e9 100644 (file)
@@ -51,6 +51,7 @@ public:
     ::decode(op, p);
     if (header.version >= 3) {
       ::decode(min_epoch, p);
+      decode_trace(p);
     } else {
       min_epoch = map_epoch;
     }
@@ -61,6 +62,7 @@ public:
     ::encode(map_epoch, payload);
     ::encode(op, payload, features);
     ::encode(min_epoch, payload);
+    encode_trace(payload, features);
   }
 
   const char *get_type_name() const override { return "MOSDECSubOpRead"; }
index 5be21c932340c7f5c3ceba3883ee784a9e9ec84e..7ad931445c9778270a1256e97a03c0955f12802f 100644 (file)
@@ -51,6 +51,7 @@ public:
     ::decode(op, p);
     if (header.version >= 2) {
       ::decode(min_epoch, p);
+      decode_trace(p);
     } else {
       min_epoch = map_epoch;
     }
@@ -61,6 +62,7 @@ public:
     ::encode(map_epoch, payload);
     ::encode(op, payload);
     ::encode(min_epoch, payload);
+    encode_trace(payload, features);
   }
 
   const char *get_type_name() const override { return "MOSDECSubOpReadReply"; }
index 6c8e7600e524fe5fb31132cc3df570234046c2b2..72a272c6ab02a5da889ca583329e9578ece2d31c 100644 (file)
@@ -55,6 +55,7 @@ public:
     ::decode(op, p);
     if (header.version >= 2) {
       ::decode(min_epoch, p);
+      decode_trace(p);
     } else {
       min_epoch = map_epoch;
     }
@@ -65,6 +66,7 @@ public:
     ::encode(map_epoch, payload);
     ::encode(op, payload);
     ::encode(min_epoch, payload);
+    encode_trace(payload, features);
   }
 
   const char *get_type_name() const override { return "MOSDECSubOpWrite"; }
index d29c2f9f117c2551646680f615d80eedd69071f4..778a13d798494c970e962aaabacf5b82dc70aaec 100644 (file)
@@ -51,6 +51,7 @@ public:
     ::decode(op, p);
     if (header.version >= 2) {
       ::decode(min_epoch, p);
+      decode_trace(p);
     } else {
       min_epoch = map_epoch;
     }
@@ -61,6 +62,7 @@ public:
     ::encode(map_epoch, payload);
     ::encode(op, payload);
     ::encode(min_epoch, payload);
+    encode_trace(payload, features);
   }
 
   const char *get_type_name() const override { return "MOSDECSubOpWriteReply"; }
index 4ca66396961fd1ef508464fee9e9cbb1f5b97bba..b6b87f131de1bbee56fd3dd13d146380147201c0 100755 (executable)
@@ -361,6 +361,10 @@ struct ceph_osd_request_head {
       ::encode(osdmap_epoch, payload);
       ::encode(flags, payload);
       ::encode(reqid, payload);
+      encode_trace(payload, features);
+
+      // -- above decoded up front; below decoded post-dispatch thread --
+
       ::encode(client_inc, payload);
       ::encode(mtime, payload);
       ::encode(get_object_locator(), payload);
@@ -393,6 +397,7 @@ struct ceph_osd_request_head {
       ::decode(osdmap_epoch, p);
       ::decode(flags, p);
       ::decode(reqid, p);
+      decode_trace(p);
     } else if (header.version == 7) {
       ::decode(pgid.pgid, p);      // raw pgid
       hobj.set_hash(pgid.pgid.ps());
index 115d83b9a29d01112b7d811c28d213c77640715f..ef701fda5bfbbe5d0ba59221c5994d0395e38987 100644 (file)
@@ -32,7 +32,7 @@
 
 class MOSDOpReply : public Message {
 
-  static const int HEAD_VERSION = 7;
+  static const int HEAD_VERSION = 8;
   static const int COMPAT_VERSION = 2;
 
   object_t oid;
@@ -204,6 +204,7 @@ public:
           ::encode(redirect, payload);
         }
       }
+      encode_trace(payload, features);
     }
   }
   void decode_payload() override {
@@ -294,6 +295,9 @@ public:
          ::decode(redirect, p);
         }
       }
+      if (header.version >= 8) {
+        decode_trace(p);
+      }
     }
   }
 
index e2525158e4d9074bad97cf756a73dc9850c907eb..8b01131fec483a5b99236e5daf807f815d0f962c 100644 (file)
@@ -81,10 +81,12 @@ public:
     p = payload.begin();
     // splitted to partial and final
     ::decode(map_epoch, p);
-    if (header.version >= 2)
+    if (header.version >= 2) {
       ::decode(min_epoch, p);
-    else
+      decode_trace(p);
+    } else {
       min_epoch = map_epoch;
+    }
     ::decode(reqid, p);
     ::decode(pgid, p);
   }
@@ -112,10 +114,12 @@ public:
 
   void encode_payload(uint64_t features) override {
     ::encode(map_epoch, payload);
-    if (HAVE_FEATURE(features, SERVER_LUMINOUS))
+    if (HAVE_FEATURE(features, SERVER_LUMINOUS)) {
       ::encode(min_epoch, payload);
-    else
+      encode_trace(payload, features);
+    } else {
       header.version = 1;
+    }
     ::encode(reqid, payload);
     ::encode(pgid, payload);
     ::encode(poid, payload);
index 890dade3d2085913a3b5f77620ec6762e0a5ce55..c3e5e010042702e4d53687d6fcff934c586f0806 100644 (file)
@@ -63,10 +63,12 @@ public:
   void decode_payload() override {
     p = payload.begin();
     ::decode(map_epoch, p);
-    if (header.version >= 2)
+    if (header.version >= 2) {
       ::decode(min_epoch, p);
-    else
+      decode_trace(p);
+    } else {
       min_epoch = map_epoch;
+    }
     ::decode(reqid, p);
     ::decode(pgid, p);
   }
@@ -83,10 +85,12 @@ public:
   }
   void encode_payload(uint64_t features) override {
     ::encode(map_epoch, payload);
-    if (HAVE_FEATURE(features, SERVER_LUMINOUS))
+    if (HAVE_FEATURE(features, SERVER_LUMINOUS)) {
       ::encode(min_epoch, payload);
-    else
+      encode_trace(payload, features);
+    } else {
       header.version = 1;
+    }
     ::encode(reqid, payload);
     ::encode(pgid, payload);
     ::encode(ack_type, payload);