From: Kotresh HR Date: Thu, 20 Feb 2025 10:37:07 +0000 (+0530) Subject: mds: Log and dump referent remote cdentry X-Git-Tag: v20.3.0~377^2~41 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a6088f0d877d5133da84666bd3a4844798ab9f70;p=ceph.git mds: Log and dump referent remote cdentry Fixes: https://tracker.ceph.com/issues/54205 Signed-off-by: Kotresh HR --- diff --git a/src/mds/CDentry.cc b/src/mds/CDentry.cc index 212637e82f43..555fe090a873 100644 --- a/src/mds/CDentry.cc +++ b/src/mds/CDentry.cc @@ -79,6 +79,12 @@ ostream& operator<<(ostream& out, const CDentry& dn) out << ")"; } + if (dn.get_linkage()->is_referent_remote()) { + out << " REFERENT REMOTE("; + out << dn.get_linkage()->get_remote_d_type_string(); + out << ")"; + } + if (!dn.lock.is_sync_and_unlocked()) out << " " << dn.lock; if (!dn.versionlock.is_sync_and_unlocked()) @@ -105,6 +111,20 @@ ostream& operator<<(ostream& out, const CDentry& dn) } } + { + out << " remote_ino="; + out << dn.get_linkage()->get_remote_ino(); + const CInode *ref_in = dn.get_linkage()->get_referent_inode(); + out << " referent_inode_ptr="; + if (ref_in) { + out << ref_in; + } else { + out << "(nil)"; + } + out << " referent_ino="; + out << dn.get_linkage()->get_referent_ino(); + } + out << " state=" << dn.get_state(); if (dn.is_new()) out << "|new"; if (dn.state_test(CDentry::STATE_BOTTOMLRU)) out << "|bottomlru"; @@ -650,6 +670,7 @@ void CDentry::dump(Formatter *f) const f->dump_bool("is_primary", get_linkage()->is_primary()); f->dump_bool("is_remote", get_linkage()->is_remote()); + f->dump_bool("is_referent_remote", get_linkage()->is_referent_remote()); f->dump_bool("is_null", get_linkage()->is_null()); f->dump_bool("is_new", is_new()); if (get_linkage()->get_inode()) { @@ -660,6 +681,8 @@ void CDentry::dump(Formatter *f) const if (linkage.is_remote()) { f->dump_string("remote_type", linkage.get_remote_d_type_string()); + } else if (linkage.is_referent_remote()) { + f->dump_string("referent_remote_type", linkage.get_remote_d_type_string()); } else { f->dump_string("remote_type", ""); }