case CEPH_LOCK_IFILE:
if (is_auth()) {
::encode(inode.version, bl);
+ ::encode(inode.ctime, bl);
::encode(inode.mtime, bl);
::encode(inode.atime, bl);
::encode(inode.time_warp_seq, bl);
case CEPH_LOCK_IXATTR:
::encode(inode.version, bl);
+ ::encode(inode.ctime, bl);
::encode(xattrs, bl);
break;
case CEPH_LOCK_ISNAP:
::encode(inode.version, bl);
+ ::encode(inode.ctime, bl);
encode_snap(bl);
break;
case CEPH_LOCK_IPOLICY:
if (inode.is_dir()) {
::encode(inode.version, bl);
+ ::encode(inode.ctime, bl);
::encode(inode.layout, bl, mdcache->mds->mdsmap->get_up_features());
::encode(inode.quota, bl);
}
case CEPH_LOCK_IFILE:
if (!is_auth()) {
::decode(inode.version, p);
+ ::decode(tm, p);
+ if (inode.ctime < tm) inode.ctime = tm;
::decode(inode.mtime, p);
::decode(inode.atime, p);
::decode(inode.time_warp_seq, p);
case CEPH_LOCK_IXATTR:
::decode(inode.version, p);
+ ::decode(tm, p);
+ if (inode.ctime < tm) inode.ctime = tm;
::decode(xattrs, p);
break;
case CEPH_LOCK_ISNAP:
{
::decode(inode.version, p);
+ ::decode(tm, p);
+ if (inode.ctime < tm) inode.ctime = tm;
snapid_t seq = 0;
if (snaprealm)
seq = snaprealm->srnode.seq;
case CEPH_LOCK_IPOLICY:
if (inode.is_dir()) {
::decode(inode.version, p);
+ ::decode(tm, p);
+ if (inode.ctime < tm) inode.ctime = tm;
::decode(inode.layout, p);
::decode(inode.quota, p);
}