optmetadata_multiton<optmetadata_singleton_server_t,Allocator> optmetadata;
- inodeno_t remote_ino = 0; // referent inode - remote inode link
-
private:
bool older_is_consistent(const inode_t &other) const;
};
template<template<typename> class Allocator>
void inode_t<Allocator>::encode(ceph::buffer::list &bl, uint64_t features) const
{
- ENCODE_START(21, 6, bl);
+ ENCODE_START(20, 6, bl);
encode(ino, bl);
encode(rdev, bl);
encode(optmetadata, bl, features);
- encode(remote_ino, bl);
ENCODE_FINISH(bl);
}
decode(optmetadata, p);
}
- if (struct_v >= 21) {
- decode(remote_ino, p);
- }
DECODE_FINISH(p);
}
f->dump_stream("last_scrub_stamp") << last_scrub_stamp;
f->dump_unsigned("last_scrub_version", last_scrub_version);
- f->dump_unsigned("remote_ino", remote_ino);
}
template<template<typename> class Allocator>
JSONDecoder::decode_json("quota", quota, obj, true);
JSONDecoder::decode_json("last_scrub_stamp", last_scrub_stamp, obj, true);
JSONDecoder::decode_json("last_scrub_version", last_scrub_version, obj, true);
- JSONDecoder::decode_json("remote_ino", remote_ino.val, obj, true);
}
template<template<typename> class Allocator>
!(accounted_rstat == other.accounted_rstat) ||
file_data_version != other.file_data_version ||
xattr_version != other.xattr_version ||
- backtrace_version != other.backtrace_version ||
- remote_ino != other.remote_ino) {
+ backtrace_version != other.backtrace_version) {
*divergent = true;
}
return 0;
dnl->inode = remote_in;
if (referent_in) {
- ceph_assert(referent_in->get_remote_ino() == dnl->get_remote_ino());
dnl->referent_inode = referent_in;
dnl->referent_ino = referent_in->ino();
}
linkage_t *p = _project_linkage();
p->referent_inode = referent_inode;
referent_inode->push_projected_parent(this);
- referent_inode->set_remote_ino(remote_ino);
p->referent_ino = referent_ino;
p->remote_ino = remote_ino;
// -- accessors --
inodeno_t ino() const { return get_inode()->ino; }
- inodeno_t get_remote_ino() const { return get_inode()->remote_ino; }
vinodeno_t vino() const { return vinodeno_t(ino(), last); }
int d_type() const { return IFTODT(get_inode()->mode); }
- bool is_referent_remote() const { return get_remote_ino() != 0; }
bool is_root() const { return ino() == CEPH_INO_ROOT; }
bool is_stray() const { return MDS_INO_IS_STRAY(ino()); }
mds_rank_t get_stray_owner() const {
bool is_head() const { return last == CEPH_NOSNAP; }
- // set remote inode
- void set_remote_ino(inodeno_t ino) { _get_inode()->remote_ino = ino; }
-
// note: this overloads MDSCacheObject
bool is_ambiguous_auth() const {
return state_test(STATE_AMBIGUOUSAUTH) ||