]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
CInode: use modern encoding for encode_store
authorGreg Farnum <greg@inktank.com>
Fri, 18 Jan 2013 00:15:49 +0000 (16:15 -0800)
committerGreg Farnum <greg@inktank.com>
Fri, 8 Feb 2013 21:17:51 +0000 (13:17 -0800)
Signed-off-by: Greg Farnum <greg@inktank.com>
src/mds/CInode.cc
src/mds/CInode.h

index dc2b1fbba9652a0f18007c15895513db21689c58..97e4b1fbd4cffba6c38f71473e5d18a9aeb33bfa 100644 (file)
@@ -1059,6 +1059,48 @@ void CInode::_stored_parent(version_t v, Context *fin)
   }
 }
 
+void CInode::encode_store(bufferlist& bl)
+{
+  ENCODE_START(3, 3, bl);
+  ::encode(inode, bl);
+  if (is_symlink())
+    ::encode(symlink, bl);
+  ::encode(dirfragtree, bl);
+  ::encode(xattrs, bl);
+  bufferlist snapbl;
+  encode_snap_blob(snapbl);
+  ::encode(snapbl, bl);
+  ::encode(old_inodes, bl);
+  if (inode.is_dir()) {
+    ::encode((default_layout ? true : false), bl);
+    if (default_layout)
+      ::encode(*default_layout, bl);
+  }
+  ENCODE_FINISH(bl);
+}
+
+void CInode::decode_store(bufferlist::iterator& bl) {
+  DECODE_START_LEGACY_COMPAT_LEN(3, 3, 3, bl);
+  ::decode(inode, bl);
+  if (is_symlink())
+    ::decode(symlink, bl);
+  ::decode(dirfragtree, bl);
+  ::decode(xattrs, bl);
+  bufferlist snapbl;
+  ::decode(snapbl, bl);
+  decode_snap_blob(snapbl);
+  ::decode(old_inodes, bl);
+  if (struct_v >= 2 && inode.is_dir()) {
+    bool default_layout_exists;
+    ::decode(default_layout_exists, bl);
+    if (default_layout_exists) {
+      delete default_layout;
+      default_layout = new file_layout_policy_t;
+      ::decode(*default_layout, bl);
+    }
+  }
+  DECODE_FINISH(bl);
+}
 
 // ------------------
 // locking
index de783546e200b6be12d9e99ed5a816a7e2ac524e..4a6063275a93933abd6f42ab4b64cd2df9c99dec 100644 (file)
@@ -554,46 +554,8 @@ private:
   void build_backtrace(inode_backtrace_t& bt);
   unsigned encode_parent_mutation(ObjectOperation& m);
 
-  void encode_store(bufferlist& bl) {
-    __u8 struct_v = 2;
-    ::encode(struct_v, bl);
-    ::encode(inode, bl);
-    if (is_symlink())
-      ::encode(symlink, bl);
-    ::encode(dirfragtree, bl);
-    ::encode(xattrs, bl);
-    bufferlist snapbl;
-    encode_snap_blob(snapbl);
-    ::encode(snapbl, bl);
-    ::encode(old_inodes, bl);
-    if (inode.is_dir()) {
-      ::encode((default_layout ? true : false), bl);
-      if (default_layout)
-        ::encode(*default_layout, bl);
-    }
-  }
-  void decode_store(bufferlist::iterator& bl) {
-    __u8 struct_v;
-    ::decode(struct_v, bl);
-    ::decode(inode, bl);
-    if (is_symlink())
-      ::decode(symlink, bl);
-    ::decode(dirfragtree, bl);
-    ::decode(xattrs, bl);
-    bufferlist snapbl;
-    ::decode(snapbl, bl);
-    decode_snap_blob(snapbl);
-    ::decode(old_inodes, bl);
-    if (struct_v >= 2 && inode.is_dir()) {
-      bool default_layout_exists;
-      ::decode(default_layout_exists, bl);
-      if (default_layout_exists) {
-        delete default_layout;
-        default_layout = new file_layout_policy_t;
-        ::decode(*default_layout, bl);
-      }
-    }
-  }
+  void encode_store(bufferlist& bl);
+  void decode_store(bufferlist::iterator& bl);
 
   void encode_replica(int rep, bufferlist& bl) {
     assert(is_auth());