m->mtime = in->mtime;
m->atime = in->atime;
m->ctime = in->ctime;
+ m->btime = in->btime;
m->time_warp_seq = in->time_warp_seq;
if (flush & CEPH_CAP_FILE_WR) {
capsnap->uid = in->uid;
capsnap->gid = in->gid;
capsnap->mode = in->mode;
+ capsnap->btime = in->btime;
capsnap->xattrs = in->xattrs;
capsnap->xattr_version = in->xattr_version;
m->head.uid = capsnap->uid;
m->head.gid = capsnap->gid;
m->head.mode = capsnap->mode;
+ m->btime = capsnap->btime;
m->size = capsnap->size;
::encode(capsnap->xattrs, m->xattrbl);
m->ctime = capsnap->ctime;
+ m->btime = capsnap->btime;
m->mtime = capsnap->mtime;
m->atime = capsnap->atime;
m->time_warp_seq = capsnap->time_warp_seq;
in->mode = m->head.mode;
in->uid = m->head.uid;
in->gid = m->head.gid;
+ in->btime = m->btime;
}
bool deleted_inode = false;
if ((issued & CEPH_CAP_LINK_EXCL) == 0) {
int issued, dirty;
uint64_t size;
- utime_t ctime, mtime, atime;
+ utime_t ctime, btime, mtime, atime;
version_t time_warp_seq;
uint32_t mode;
uid_t uid;
<< " for " << *in << dendl;
pi->mode = m->head.mode;
}
+ if (m->get_btime() != pi->btime) {
+ dout(7) << " btime " << oct << pi->btime
+ << " -> " << m->get_btime() << dec
+ << " for " << *in << dendl;
+ pi->btime = m->get_btime();
+ }
}
}
class MClientCaps : public Message {
- static const int HEAD_VERSION = 8;
+ static const int HEAD_VERSION = 9;
static const int COMPAT_VERSION = 1;
public:
uint64_t size, max_size, truncate_size;
uint32_t truncate_seq;
- utime_t mtime, atime, ctime;
+ utime_t mtime, atime, ctime, btime;
file_layout_t layout;
uint32_t time_warp_seq;
__u32 get_truncate_seq() { return truncate_seq; }
uint64_t get_truncate_size() { return truncate_size; }
utime_t get_ctime() { return ctime; }
+ utime_t get_btime() { return btime; }
utime_t get_mtime() { return mtime; }
utime_t get_atime() { return atime; }
__u32 get_time_warp_seq() { return time_warp_seq; }
if (header.version >= 8) {
::decode(layout.pool_ns, p);
}
+ if (header.version >= 9) {
+ ::decode(btime, p);
+ }
}
void encode_payload(uint64_t features) {
header.version = HEAD_VERSION;
::encode(caller_gid, payload);
::encode(layout.pool_ns, payload);
+ ::encode(btime, payload);
}
};