]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Revert "mds: Handle referent inode while trimming the dentry"
authorVenky Shankar <vshankar@redhat.com>
Tue, 18 Mar 2025 09:02:13 +0000 (09:02 +0000)
committerVenky Shankar <vshankar@redhat.com>
Fri, 20 Mar 2026 07:25:14 +0000 (12:55 +0530)
This reverts commit dafc07cb816cb3602d2869cc218e7350088b5913.

Signed-off-by: Venky Shankar <vshankar@redhat.com>
src/mds/MDCache.cc

index 34dc970042547dc9ed45eae00e3e59afdeebcf6e..7d118905531fad9fe0513fc41c4772bb94959a0e 100644 (file)
@@ -7169,12 +7169,6 @@ bool MDCache::trim_dentry(CDentry *dn, expiremap& expiremap)
   if (dnl->is_remote()) {
     // just unlink.
     dir->unlink_inode(dn, false);
-  } else if (dnl->is_referent_remote()) {
-    // expire the referent inode too.
-    CInode *ref_in = dnl->get_referent_inode();
-    ceph_assert(ref_in);
-    if (trim_inode(dn, ref_in, con, expiremap))
-      return true; // purging stray instead of trimming
   } else if (dnl->is_primary()) {
     // expire the inode, too.
     CInode *in = dnl->get_inode();
@@ -7393,8 +7387,7 @@ void MDCache::trim_non_auth()
       // add back into lru (at the top)
       auth_list.push_back(dn);
 
-      if ((dnl->is_remote() || dnl->is_referent_remote()) &&
-         dnl->get_inode() && !dnl->get_inode()->is_auth())
+      if (dnl->is_remote() && dnl->get_inode() && !dnl->get_inode()->is_auth())
        dn->unlink_remote(dnl);
     } else {
       // non-auth.  expire.
@@ -7406,15 +7399,9 @@ void MDCache::trim_non_auth()
       if (dnl->is_remote()) {
        dir->unlink_inode(dn, false);
       } 
-      else if (dnl->is_primary() || dnl->is_referent_remote()) {
-       CInode *in = nullptr;
-       if (dnl->is_referent_remote()) {
-          in = dnl->get_referent_inode();
-         dout(10) << __func__ << " removing referent inode " << *in << dendl;
-       } else {
-          in = dnl->get_inode();
-         dout(10) << __func__ << " removing inode " << *in << dendl;
-       }
+      else if (dnl->is_primary()) {
+       CInode *in = dnl->get_inode();
+       dout(10) << " removing " << *in << dendl;
        auto&& ls = in->get_dirfrags();
        for (const auto& subdir : ls) {
          ceph_assert(!subdir->is_subtree_root());
@@ -7534,16 +7521,8 @@ bool MDCache::trim_non_auth_subtree(CDir *dir)
       dout(20) << "trim_non_auth_subtree(" << dir << ") keeping dentry " << dn <<dendl;
     } else { // just remove it
       dout(20) << "trim_non_auth_subtree(" << dir << ") removing dentry " << dn << dendl;
-      if (dnl->is_remote() || dnl->is_referent_remote()) {
+      if (dnl->is_remote())
         dir->unlink_inode(dn, false);
-       if (dnl->is_referent_remote()) {
-          // remove referent inode
-         CInode *ref_in = dnl->get_referent_inode();
-          dout(20) << __func__ << " removing referent inode " << ref_in << dendl;
-          remove_inode(ref_in);
-         ceph_assert(!dir->has_bloom());
-       }
-      }
       dir->remove_dentry(dn);
     }
   }