*/
void fnode_t::encode(bufferlist &bl) const
{
- ENCODE_START(3, 3, bl);
+ ENCODE_START(4, 3, bl);
::encode(version, bl);
::encode(snap_purged_thru, bl);
::encode(fragstat, bl);
::encode(rstat, bl);
::encode(accounted_rstat, bl);
::encode(damage_flags, bl);
+ ::encode(recursive_scrub_version, bl);
+ ::encode(recursive_scrub_stamp, bl);
+ ::encode(localized_scrub_version, bl);
+ ::encode(localized_scrub_stamp, bl);
ENCODE_FINISH(bl);
}
if (struct_v >= 3) {
::decode(damage_flags, bl);
}
+ if (struct_v >= 4) {
+ ::decode(recursive_scrub_version, bl);
+ ::decode(recursive_scrub_stamp, bl);
+ ::decode(localized_scrub_version, bl);
+ ::decode(localized_scrub_stamp, bl);
+ }
DECODE_FINISH(bl);
}
nest_info_t rstat, accounted_rstat;
damage_flags_t damage_flags;
+ // we know we and all our descendants have been scrubbed since this version
+ version_t recursive_scrub_version;
+ utime_t recursive_scrub_stamp;
+ // version at which we last scrubbed our personal data structures
+ version_t localized_scrub_version;
+ utime_t localized_scrub_stamp;
+
void encode(bufferlist &bl) const;
void decode(bufferlist::iterator& bl);
void dump(Formatter *f) const;
static void generate_test_instances(list<fnode_t*>& ls);
- fnode_t() : version(0) {}
+ fnode_t() : version(0),
+ recursive_scrub_version(0), localized_scrub_version(0) {}
};
WRITE_CLASS_ENCODER(fnode_t)