From e26f5f34b7b20bf11a8463f10ab7e177e067657c Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 21 Nov 2008 14:58:14 -0800 Subject: [PATCH] mds: exclude BADREMOTEINO dentriess in readdir --- src/mds/Server.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 185ba27dfa122..af836249cd65e 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -2037,10 +2037,11 @@ void Server::handle_client_readdir(MDRequest *mdr) in = mdcache->get_inode(dn->get_remote_ino()); if (in) { dn->link_remote(in); + } else if (dn->state_test(CDentry::STATE_BADREMOTEINO)) { + dout(10) << "skipping bad remote ino on " << *dn << dendl; + continue; } else { - dout(10) << "opening remote ino for " << *dn << dendl; - mdcache->open_remote_ino(dn->get_remote_ino(), - new C_MDS_RetryRequest(mdcache, mdr)); + mdcache->open_remote_dentry(dn, new C_MDS_RetryRequest(mdcache, mdr)); // touch everything i _do_ have for (it = dir->begin(); -- 2.39.5