From: Greg Farnum Date: Wed, 15 Oct 2014 21:44:08 +0000 (-0700) Subject: mds: inode_t: add scrub stamp and version for latest complete scrub X-Git-Tag: v10.0.1~51^2~22 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f8b2fb90ef0ad58b1d1235953260b9a7b48c850f;p=ceph.git mds: inode_t: add scrub stamp and version for latest complete scrub Signed-off-by: Greg Farnum --- diff --git a/src/mds/mdstypes.cc b/src/mds/mdstypes.cc index 77846c3cdae5..6b4311657d69 100644 --- a/src/mds/mdstypes.cc +++ b/src/mds/mdstypes.cc @@ -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); } diff --git a/src/mds/mdstypes.h b/src/mds/mdstypes.h index b3c639f44337..52c01564de38 100644 --- a/src/mds/mdstypes.h +++ b/src/mds/mdstypes.h @@ -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("a, 0, sizeof(quota));