void CInode::encode_lock_ipolicy(bufferlist& bl)
{
- ENCODE_START(2, 1, bl);
+ ENCODE_START(3, 1, bl);
if (is_dir()) {
encode(get_inode()->version, bl);
encode(get_inode()->ctime, bl);
encode(get_inode()->export_pin, bl);
encode(get_inode()->flags, bl);
encode(get_inode()->export_ephemeral_random_pin, bl);
+ } else {
+ encode(get_inode()->flags, bl);
}
ENCODE_FINISH(bl);
}
{
ceph_assert(!is_auth());
auto _inode = allocate_inode(*get_inode());
- DECODE_START(1, p);
+ DECODE_START(3, p);
if (is_dir()) {
decode(_inode->version, p);
utime_t tm;
decode(_inode->flags, p);
decode(_inode->export_ephemeral_random_pin, p);
}
+ } else {
+ if (struct_v >= 3) {
+ decode(_inode->flags, p);
+ }
}
DECODE_FINISH(p);