From: Yan, Zheng Date: Mon, 16 Jan 2017 09:25:45 +0000 (+0800) Subject: mds: add -ESTALE recovery code for slave rmdir X-Git-Tag: v12.0.0~43^2~7 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d91b4f5ddbc86888175970f34249e72dff2f66a0;p=ceph.git mds: add -ESTALE recovery code for slave rmdir Signed-off-by: Yan, Zheng --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 2525fe48173..d83aa2f31f9 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -5811,6 +5811,12 @@ void Server::handle_slave_rmdir_prep(MDRequestRef& mdr) dout(10) << " src " << srcpath << dendl; CInode *in; int r = mdcache->path_traverse(mdr, NULL, NULL, srcpath, &trace, &in, MDS_TRAVERSE_DISCOVERXLOCK); + if (r > 0) return; + if (r == -ESTALE) { + mdcache->find_ino_peers(srcpath.get_ino(), new C_MDS_RetryRequest(mdcache, mdr), + mdr->slave_to_mds); + return; + } assert(r == 0); CDentry *dn = trace[trace.size()-1]; dout(10) << " dn " << *dn << dendl;