CInode::close_dirfrag callers: void CDir::merge(list& subs, list& waiters, bool replay) - void MDCache::adjust_dir_fragments(CInode *diri, list& srcfrags, frag_t basefrag, int bits, list& resultfrags, list& waiters, bool replay) - void EFragment::replay(MDS *mds) // Not sure where/if this is getting called - void MDCache::adjust_dir_fragments(CInode *diri, frag_t basefrag, int bits, list& resultfrags, list& waiters, bool replay) - void MDCache::handle_fragment_notify(MMDSFragmentNotify *notify) - void MDCache::dispatch(Message *m) - bool MDS::handle_deferrable_message(Message *m) - bool MDS::_dispatch(Message *m) - bool MDS::ms_dispatch(Message *m) // called by the message - C_MDS_RetryMessage::finish() - void MDCache::rollback_uncommitted_fragments() - void MDS::reopen_log() - void MDS::resolve_start() - void MDS::handle_mds_map(MMDSMap *m) - bool MDS::handle_core_message(Message *m) - bool MDS::_dispatch(Message *m) - bool MDS::ms_dispatch(Message *m) // called by the message - C_MDS_RetryMessage::finish() - void MDS::reconnect_start() - void MDS::handle_mds_map(MMDSMap *m) - bool MDS::handle_core_message(Message *m) - bool MDS::_dispatch(Message *m) - bool MDS::ms_dispatch(Message *m) // called by the message - C_MDS_RetryMessage::finish() - CDir *MDCache::force_dir_fragment(CInode *diri, frag_t fg) - void MDCache::fragment_frozen(list& dirs, frag_t basefrag, int bits) void CInode::close_dirfrags() - CInode::~CInode() void MDCache::remove_inode_recursive(CInode *in) - void EMetaBlob::replay(MDS *mds, LogSegment *logseg) - void MDCache::trim_unlinked_inodes() - void MDCache::maybe_resolve_finish() - void MDCache::handle_resolve(MMDSResolve *m) - void MDCache::dispatch(Message *m) - bool MDS::handle_deferrable_message(Message *m) - bool MDS::_dispatch(Message *m) - bool MDS::ms_dispatch(Message *m) // called by the message - C_MDS_RetryMessage::finish() void MDCache::rejoin_trim_undef_inodes() - void MDCache::rejoin_gather_finish() - void MDCache::rejoin_send_rejoins() - void MDS::rejoin_joint_start() - void MDS::handle_mds_map(MMDSMap *m) - void MDCache::handle_cache_rejoin_weak(MMDSCacheRejoin *weak) - void MDCache::handle_cache_rejoin(MMDSCacheRejoin *m) - void MDCache::dispatch(Message *m) - bool MDS::handle_deferrable_message(Message *m) - bool MDS::_dispatch(Message *m) - bool MDS::ms_dispatch(Message *m) // called by the message - C_MDS_RetryMessage::finish() - void MDCache::handle_cache_rejoin_strong(MMDSCacheRejoin *strong) - void MDCache::handle_cache_rejoin(MMDSCacheRejoin *m) - void MDCache::dispatch(Message *m) - bool MDS::handle_deferrable_message(Message *m) - bool MDS::_dispatch(Message *m) - bool MDS::ms_dispatch(Message *m) // called by the message - C_MDS_RetryMessage::finish() - void MDCache::handle_cache_rejoin_full(MMDSCacheRejoin *full) - void MDCache::handle_cache_rejoin(MMDSCacheRejoin *m) - void MDCache::dispatch(Message *m) - bool MDS::handle_deferrable_message(Message *m) - bool MDS::_dispatch(Message *m) - bool MDS::ms_dispatch(Message *m) // called by the message - C_MDS_RetryMessage::finish() - void C_MDC_RejoinGatherFinish::finish(int r) // finish gets called here when a gather_bld goes out of scope in parallel_fetch. - bool MDCache::parallel_fetch(map& pathmap, set& missing) - bool MDCache::parallel_fetch_traverse_dir(inodeno_t ino, filepath& path, set& fetch_queue, set& missing, C_GatherBuilder &gather_bld) void MDCache::trim_dirfrag(CDir *dir, CDir *con, map& expire map) - bool MDCache::trim(int max) - void MDS::tick() // Need to investigate as trim gets called before find_idle_sessions. - void MDCache::trim_inode(CDentry *dn, CInode *in, CDir *con, map& expiremap) - bool MDCache::trim(int max) - void MDS::tick() // Need to investigate as trim gets called before find_idle_sessions. - void MDCache::trim_dentry(CDentry *dn, map& expiremap) - bool MDCache::trim(int max) - void MDS::tick() // Need to investigate as trim gets called before find_idle_sessions. - void MDLog::standby_trim_segments() - void MDLog::_replay_thread() - void* ReplayThread::entry(); // There appear to be no instantiations of ReplayThread in the code currently. void MDCache::trim_non_auth() - void MDCache::maybe_resolve_finish() - void MDCache::handle_resolve(MMDSResolve *m) - void MDCache::dispatch(Message *m) - bool MDS::handle_deferrable_message(Message *m) - bool MDS::_dispatch(Message *m) - bool MDS::ms_dispatch(Message *m) // called by the message - C_MDS_RetryMessage::finish() - void MDCache::handle_resolve_ack(MMDSResolveAck *ack) - void MDCache::dispatch(Message *m) - bool MDS::handle_deferrable_message(Message *m) - bool MDS::_dispatch(Message *m) - bool MDS::ms_dispatch(Message *m) // called by the message - C_MDS_RetryMessage::finish() - void MDCache::finish_rollback(metareqid_t reqid) - void Server::_link_rollback_finish(Mutation *mut, MDRequest *mdr) - C_MDS_LoggedLinkRollback::finish() - void Server::_rmdir_rollback_finish(MDRequest *mdr, metareqid_t reqid, CDentry *dn, CDentry *straydn) - C_MDS_LoggedRmdirRollback::finish() - void Server::_rename_rollback_finish(Mutation *mut, MDRequest *mdr, CInode *in, CDir *olddir) - C_MDS_LoggedRenameRollback::finish() bool MDCache::trim_non_auth_subtree(CDir *dir) - void MDCache::maybe_resolve_finish() - void MDCache::handle_resolve(MMDSResolve *m) - void MDCache::dispatch(Message *m) - bool MDS::handle_deferrable_message(Message *m) - bool MDS::_dispatch(Message *m) - bool MDS::ms_dispatch(Message *m) // called by the message - C_MDS_RetryMessage::finish() - void EMetaBlob::replay(MDS *mds, LogSegment *logseg) // Not sure where/if this is getting called - void EExport::replay(MDS *mds) // Not sure where/if this is getting called void MDCache::try_trim_non_auth_subtree(CDir *dir) - void MDCache::disambiguate_imports() - void MDCache::maybe_resolve_finish() - void MDCache::handle_resolve(MMDSResolve *m) - void MDCache::dispatch(Message *m) - bool MDS::handle_deferrable_message(Message *m) - bool MDS::_dispatch(Message *m) - bool MDS::ms_dispatch(Message *m) // called by the message - C_MDS_RetryMessage::finish() void MDCache::adjust_dir_fragments(CInode *diri, list& srcfrags, frag_t basefrag, int bits, list& resultfrags, list& waiters, bool replay) - void EFragment::replay(MDS *mds) // Not sure where/if this is getting called - void MDCache::adjust_dir_fragments(CInode *diri, frag_t basefrag, int bits, list& resultfrags, list& waiters, bool replay) - void MDCache::handle_fragment_notify(MMDSFragmentNotify *notify) - void MDCache::dispatch(Message *m) - bool MDS::handle_deferrable_message(Message *m) - bool MDS::_dispatch(Message *m) - bool MDS::ms_dispatch(Message *m) // called by the message - C_MDS_RetryMessage::finish() - void MDCache::rollback_uncommitted_fragments() - void MDS::reopen_log() - void MDS::resolve_start() - void MDS::handle_mds_map(MMDSMap *m) - bool MDS::handle_core_message(Message *m) - bool MDS::_dispatch(Message *m) - bool MDS::ms_dispatch(Message *m) // called by the message - C_MDS_RetryMessage::finish() - void MDS::reconnect_start() - void MDS::handle_mds_map(MMDSMap *m) - bool MDS::handle_core_message(Message *m) - bool MDS::_dispatch(Message *m) - bool MDS::ms_dispatch(Message *m) // called by the message - C_MDS_RetryMessage::finish() // Places where a context finish is called: void AnchorClient::handle_query_result(class MMDSTableRequest *m) // Deletes immediately after void CInode::_stored(version_t v, Context *fin) // Deletes immediately after void CInode::_fetched(bufferlist& bl, bufferlist& bl2, Context *fin) // Deletes immediately after void CInode::_stored_parent(version_t v, Context *fin) // Deletes immediately after void MDCache::_create_system_file_finish(Mutation *mut, CDentry *dn, version_t dpv, Context *fin) // Deletes immediately after void MDCache::handle_resolve_ack(MMDSResolveAck *ack) // Deletes immediately after void C_MDC_OpenRemoteIno::finish(int r) // Deletes immediately after void MDCache::open_remote_ino(inodeno_t ino, Context *onfinish, inodeno_t hadino, version_t hadv) // Deletes immediately after void MDCache::open_remote_ino_2(inodeno_t ino,vector& anchortrace, inodeno_t hadino, version_t hadv, Context *onfinish) // Deletes immediately after void MDCache::_open_remote_dentry_finish(int r, CDentry *dn, bool projected, Context *fin) // Deletes immediately after void MDCache::_do_find_ino_peer(find_ino_peer_info_t& fip) // Deletes immediately after but also call to find_ino_peer.erase(fip.tid); void MDCache::_find_ino_dir(inodeno_t ino, Context *fin, bufferlist& bl, int r) // Deletes immediately after void MDCache::request_finish(MDRequest *mdr) // Deletes immediately after void MDLog::submit_entry(LogEvent *le, Context *c) // Deletes immediately after void MDLog::wait_for_safe(Context *c) // Deletes immediately after void MDLog::replay(Context *c) // Deletes immediately after bool MDS::_dispatch(Message *m) // Deletes immediately after void MDSTable::load_2(int r, bufferlist& bl, Context *onfinish) // Deletes immediately after void MDSTableClient::handle_request(class MMDSTableRequest *m) // Deletes immediately after MDSlaveUpdate::~MDSlaveUpdate() // Deletes immediately after