{
dout(10) << "split by " << bits << " bits on " << *this << dendl;
- if (cache->mds->logger) cache->mds->logger->inc(l_mds_dir_split);
-
assert(replay || is_complete() || !is_auth());
list<frag_t> frags;
{
dout(10) << "merge " << subs << dendl;
- if (cache->mds->logger) cache->mds->logger->inc(l_mds_dir_merge);
-
set_dir_auth(subs.front()->get_dir_auth());
prepare_new_fragment(replay);
void MDCache::_fragment_finish(dirfrag_t basedirfrag, list<CDir*>& resultfrags)
{
- dout(10) << "fragment_finish " << basedirfrag << dendl;
+ dout(10) << "fragment_finish " << basedirfrag << "resultfrags.size="
+ << resultfrags.size() << dendl;
map<dirfrag_t, ufragment>::iterator it = uncommitted_fragments.find(basedirfrag);
assert(it != uncommitted_fragments.end());
ufragment &uf = it->second;
(*p)->auth_unpin(this);
}
+ if (mds->logger) {
+ if (resultfrags.size() > 1) {
+ mds->logger->inc(l_mds_dir_split);
+ } else {
+ mds->logger->inc(l_mds_dir_merge);
+ }
+ }
+
EFragment *le = new EFragment(mds->mdlog, EFragment::OP_FINISH, basedirfrag, uf.bits);
mds->mdlog->start_submit_entry(le);