set<CInode*> linked;
// walk through my dirs (in order!)
+ int count = 0;
for (const auto& lp : lump_order) {
dout(10) << "EMetaBlob.replay dir " << lp << dendl;
dirlump &lump = lump_map[lp];
else
in->state_clear(CInode::STATE_AUTH);
ceph_assert(g_conf()->mds_kill_journal_replay_at != 2);
+
+ if (!(++count % 1000))
+ mds->heartbeat_reset();
}
// remote dentries
}
if (lump.is_importing())
dn->state_set(CDentry::STATE_AUTH);
+
+ if (!(++count % 1000))
+ mds->heartbeat_reset();
}
// null dentries
// Make null dentries the first things we trim
dout(10) << "EMetaBlob.replay pushing to bottom of lru " << *dn << dendl;
+
+ if (!(++count % 1000))
+ mds->heartbeat_reset();
}
}
slaveup->olddirs.insert(dir->inode);
else
dir->state_set(CDir::STATE_AUTH);
+
+ if (!(++count % 1000))
+ mds->heartbeat_reset();
}
}
dout(10) << " creating new rename import bound " << *dir << dendl;
dir->state_clear(CDir::STATE_AUTH);
mds->mdcache->adjust_subtree_auth(dir, CDIR_AUTH_UNDEF);
+
+ if (!(++count % 1000))
+ mds->heartbeat_reset();
}
}
continue;
ceph_assert(p->first->is_dir());
mds->mdcache->adjust_subtree_after_rename(p->first, p->second, false);
+
+ if (!(++count % 1000))
+ mds->heartbeat_reset();
}
}
in->snaprealm->adjust_parent();
} else
mds->mdcache->remove_inode_recursive(in);
+
+ if (!(++count % 1000))
+ mds->heartbeat_reset();
}
}
MDSTableClient *client = mds->get_table_client(p.first);
if (client)
client->got_journaled_agree(p.second, logseg);
+
+ if (!(++count % 1000))
+ mds->heartbeat_reset();
}
// opened ino?
CInode *in = mds->mdcache->get_inode(ino);
ceph_assert(in);
mds->mdcache->add_recovered_truncate(in, logseg);
+
+ if (!(++count % 1000))
+ mds->heartbeat_reset();
}
for (const auto& p : truncate_finish) {
LogSegment *ls = mds->mdlog->get_segment(p.second);
ceph_assert(in);
mds->mdcache->remove_recovered_truncate(in, ls);
}
+
+ if (!(++count % 1000))
+ mds->heartbeat_reset();
}
// destroyed inodes
} else {
dout(10) << "EMetaBlob.replay destroyed " << *p << ", not in cache" << dendl;
}
+
+ if (!(++count % 1000))
+ mds->heartbeat_reset();
}
mds->mdcache->open_file_table.note_destroyed_inos(logseg->seq, destroyed_inodes);
}
session->trim_completed_requests(p.second);
}
}
+
+ if (!(++count % 1000))
+ mds->heartbeat_reset();
}
// client flushes
session->trim_completed_flushes(p.second);
}
}
+
+ if (!(++count % 1000))
+ mds->heartbeat_reset();
}
// update segment