::encode(last_scrub_stamp, bl);
::encode(btime, bl);
+ ::encode(change_attr, bl);
ENCODE_FINISH(bl);
}
}
if (struct_v >= 14) {
::decode(btime, p);
+ ::decode(change_attr, p);
} else {
btime = utime_t();
+ change_attr = 0;
}
DECODE_FINISH(p);
f->dump_stream("mtime") << mtime;
f->dump_stream("atime") << atime;
f->dump_unsigned("time_warp_seq", time_warp_seq);
+ f->dump_unsigned("change_attr", change_attr);
f->open_array_section("client_ranges");
for (map<client_t,client_writeable_range_t>::const_iterator p = client_ranges.begin(); p != client_ranges.end(); ++p) {
truncate_size != other.truncate_size ||
truncate_from != other.truncate_from ||
truncate_pending != other.truncate_pending ||
+ change_attr != other.change_attr ||
mtime != other.mtime ||
atime != other.atime ||
time_warp_seq != other.time_warp_seq ||
uint32_t time_warp_seq; // count of (potential) mtime/atime timewarps (i.e., utimes())
inline_data_t inline_data;
+ // change attribute
+ uint64_t change_attr;
+
std::map<client_t,client_writeable_range_t> client_ranges; // client(s) can write to these ranges
// dirfrag, recursive accountin
size(0), max_size_ever(0),
truncate_seq(0), truncate_size(0), truncate_from(0),
truncate_pending(0),
- time_warp_seq(0),
+ time_warp_seq(0), change_attr(0),
version(0), file_data_version(0), xattr_version(0),
last_scrub_version(0), backtrace_version(0) {
clear_layout();