From: Yan, Zheng Date: Fri, 28 Jul 2017 08:36:31 +0000 (+0800) Subject: mds: cleanup {do_open,_do_find}_ino_peer() X-Git-Tag: ses5-milestone10~3^2~19^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8d71b8852e80c80ef62536986e88615130383cf9;p=ceph.git mds: cleanup {do_open,_do_find}_ino_peer() Signed-off-by: "Yan, Zheng" --- diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 9fc11eef93b7..1b27f8a15f65 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -8605,7 +8605,6 @@ void MDCache::do_open_ino(inodeno_t ino, open_ino_info_t& info, int err) { if (err < 0 && err != -EAGAIN) { info.checked.clear(); - info.checked.insert(mds->get_nodeid()); info.checking = MDS_RANK_NONE; info.check_peers = true; info.fetch_backtrace = true; @@ -8626,7 +8625,6 @@ void MDCache::do_open_ino(inodeno_t ino, open_ino_info_t& info, int err) info.fetch_backtrace = false; info.checking = mds->get_nodeid(); info.checked.clear(); - info.checked.insert(mds->get_nodeid()); C_IO_MDC_OpenInoBacktraceFetched *fin = new C_IO_MDC_OpenInoBacktraceFetched(this, ino); fetch_backtrace(ino, info.pool, fin->bl, @@ -8664,7 +8662,8 @@ void MDCache::do_open_ino_peer(inodeno_t ino, open_ino_info_t& info) } } if (peer < 0) { - if (all.size() > active.size() && all != info.checked) { + all.erase(mds->get_nodeid()); + if (all != info.checked) { dout(10) << " waiting for more peers to be active" << dendl; } else { dout(10) << " all MDS peers have been checked " << dendl; @@ -8813,7 +8812,6 @@ void MDCache::open_ino(inodeno_t ino, int64_t pool, MDSInternalContextBase* fin, info.waiters.push_back(fin); } else { open_ino_info_t& info = opening_inodes[ino]; - info.checked.insert(mds->get_nodeid()); info.want_replica = want_replica; info.want_xlocked = want_xlocked; info.tid = ++open_ino_last_tid; @@ -8845,7 +8843,6 @@ void MDCache::find_ino_peers(inodeno_t ino, MDSInternalContextBase *c, mds_rank_ fip.tid = tid; fip.fin = c; fip.hint = hint; - fip.checked.insert(mds->get_nodeid()); _do_find_ino_peer(fip); } @@ -8873,7 +8870,8 @@ void MDCache::_do_find_ino_peer(find_ino_peer_info_t& fip) } } if (m == MDS_RANK_NONE) { - if (all.size() > active.size()) { + all.erase(mds->get_nodeid()); + if (all != fip.checked) { dout(10) << "_do_find_ino_peer waiting for more peers to be active" << dendl; } else { dout(10) << "_do_find_ino_peer failed on " << fip.ino << dendl;