From: Venky Shankar Date: Tue, 18 Mar 2025 09:01:28 +0000 (+0000) Subject: Revert "multi-mds/link: Send referent inode to dentry_replicas" X-Git-Tag: testing/wip-vshankar-testing-20250623.033253-tentacle-debug~1^2~20 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=b070dd7afa724bc9f1b2c8f4d90cb8d0da3dbd7a;p=ceph-ci.git Revert "multi-mds/link: Send referent inode to dentry_replicas" This reverts commit d7d294e3687368f1bcf5207c04b13514a5bbc5fd. Signed-off-by: Venky Shankar (cherry picked from commit 8448a8e5ca3dfed0aaf19c02b6ee3c476883335d) --- diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 324204d5f1b..c13d260c345 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -11441,13 +11441,11 @@ void MDCache::handle_dir_update(const cref_t &m) void MDCache::encode_remote_dentry_link(CDentry::linkage_t *dnl, bufferlist& bl) { - ENCODE_START(2, 1, bl); + ENCODE_START(1, 1, bl); inodeno_t ino = dnl->get_remote_ino(); encode(ino, bl); __u8 d_type = dnl->get_remote_d_type(); encode(d_type, bl); - inodeno_t referent_ino = dnl->get_referent_ino(); - encode(referent_ino, bl); ENCODE_FINISH(bl); } @@ -11459,14 +11457,7 @@ void MDCache::decode_remote_dentry_link(CDir *dir, CDentry *dn, bufferlist::cons decode(ino, p); decode(d_type, p); dout(10) << __func__ << " remote " << ino << " " << d_type << dendl; - inodeno_t referent_ino; - if (struct_v >= 2) { - decode(referent_ino, p); - } - if (referent_ino > 0) - dir->link_null_referent_inode(dn, referent_ino, ino, d_type); - else - dir->link_remote_inode(dn, ino, d_type); + dir->link_remote_inode(dn, ino, d_type); DECODE_FINISH(p); } @@ -11495,11 +11486,6 @@ void MDCache::send_dentry_link(CDentry *dn, const MDRequestRef& mdr) mds->mdsmap->get_up_features()); } else if (dnl->is_remote()) { encode_remote_dentry_link(dnl, m->bl); - } else if (dnl->is_referent_remote()) { - dout(10) << __func__ << " referent remote " << *dnl->get_referent_inode() << dendl; - encode_remote_dentry_link(dnl, m->bl); - encode_replica_inode(dnl->get_referent_inode(), p.first, m->bl, - mds->mdsmap->get_up_features()); } else ceph_abort(); // aie, bad caller! mds->send_message_mds(m, p.first); @@ -11528,16 +11514,13 @@ void MDCache::handle_dentry_link(const cref_t &m) auto p = m->bl.cbegin(); MDSContext::vec finished; if (dn) { - CInode *in = nullptr; if (m->get_is_primary()) { // primary link. + CInode *in = nullptr; decode_replica_inode(in, p, dn, finished); } else { // remote link, easy enough. decode_remote_dentry_link(dir, dn, p); - // decode referent inode and link it, only if it's referent - if (dn->get_linkage()->get_referent_ino() > 0) - decode_replica_inode(in, p, dn, finished); } } else { ceph_abort();