]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: inode_t: add scrub stamp and version for latest complete scrub
authorGreg Farnum <greg@inktank.com>
Wed, 15 Oct 2014 21:44:08 +0000 (14:44 -0700)
committerYan, Zheng <zyan@redhat.com>
Wed, 4 Nov 2015 09:17:24 +0000 (17:17 +0800)
Signed-off-by: Greg Farnum <greg@inktank.com>
src/mds/mdstypes.cc
src/mds/mdstypes.h

index 77846c3cdae517d5e2328d5b65eb9802b8a4b6dc..6b4311657d694b2b4b6b64290f3fb57999b1f135 100644 (file)
@@ -256,7 +256,7 @@ void inline_data_t::decode(bufferlist::iterator &p)
  */
 void inode_t::encode(bufferlist &bl) const
 {
-  ENCODE_START(12, 6, bl);
+  ENCODE_START(13, 6, bl);
 
   ::encode(ino, bl);
   ::encode(rdev, bl);
@@ -300,12 +300,15 @@ void inode_t::encode(bufferlist &bl) const
 
   ::encode(stray_prior_path, bl);
 
+  ::encode(last_scrub_version, bl);
+  ::encode(last_scrub_stamp, bl);
+
   ENCODE_FINISH(bl);
 }
 
 void inode_t::decode(bufferlist::iterator &p)
 {
-  DECODE_START_LEGACY_COMPAT_LEN(12, 6, 6, p);
+  DECODE_START_LEGACY_COMPAT_LEN(13, 6, 6, p);
 
   ::decode(ino, p);
   ::decode(rdev, p);
@@ -369,8 +372,15 @@ void inode_t::decode(bufferlist::iterator &p)
     backtrace_version = 0; // force update backtrace
   if (struct_v >= 11)
     ::decode(quota, p);
-  if (struct_v >= 12)
+
+  if (struct_v >= 12) {
     ::decode(stray_prior_path, p);
+  }
+
+  if (struct_v >= 13) {
+    ::decode(last_scrub_version, p);
+    ::decode(last_scrub_stamp, p);
+  }
 
   DECODE_FINISH(p);
 }
index b3c639f44337223a50b629f5008268b0c12e0e84..52c01564de3883156b5b4ee40c4a9a4f7e213111 100644 (file)
@@ -464,6 +464,9 @@ struct inode_t {
   version_t file_data_version; // auth only
   version_t xattr_version;
 
+  utime_t last_scrub_stamp;    // start time of last complete scrub
+  version_t last_scrub_version;// (parent) start version of last complete scrub
+
   version_t backtrace_version;
 
   snapid_t oldest_snap;
@@ -476,7 +479,8 @@ struct inode_t {
              truncate_seq(0), truncate_size(0), truncate_from(0),
              truncate_pending(0),
              time_warp_seq(0),
-             version(0), file_data_version(0), xattr_version(0), backtrace_version(0) {
+             version(0), file_data_version(0), xattr_version(0),
+             last_scrub_version(0), backtrace_version(0) {
     clear_layout();
     memset(&dir_layout, 0, sizeof(dir_layout));
     memset(&quota, 0, sizeof(quota));