MDCache::MDCache(MDSRank *m) :
mds(m),
- logger(0),
filer(m->objecter, m->finisher),
- rejoin_done(NULL),
- resolve_done(NULL),
recovery_queue(m),
stray_manager(m)
{
- migrator = new Migrator(mds, this);
+ migrator.reset(new Migrator(mds, this));
root = NULL;
myin = NULL;
readonly = false;
MDCache::~MDCache()
{
- delete migrator;
if (logger) {
- g_ceph_context->get_perfcounters_collection()->remove(logger);
- delete logger;
- logger = 0;
+ g_ceph_context->get_perfcounters_collection()->remove(logger.get());
}
-
- delete rejoin_done; rejoin_done = NULL;
- delete resolve_done; resolve_done = NULL;
}
void MDCache::resolve_start(MDSInternalContext *resolve_done_)
{
dout(10) << "resolve_start" << dendl;
- assert(resolve_done == NULL);
- resolve_done = resolve_done_;
+ assert(!resolve_done);
+ resolve_done.reset(resolve_done_);
if (mds->mdsmap->get_root() != mds->get_nodeid()) {
// if we don't have the root dir, adjust it to UNKNOWN. during
assert(mds->is_resolve());
trim_unlinked_inodes();
recalc_auth_bits(false);
- resolve_done->complete(0);
- resolve_done = NULL;
+ resolve_done.release()->complete(0);
} else {
maybe_send_pending_rejoins();
}
void MDCache::rejoin_start(MDSInternalContext *rejoin_done_)
{
dout(10) << "rejoin_start" << dendl;
- assert(rejoin_done == NULL);
- rejoin_done = rejoin_done_;
+ assert(!rejoin_done);
+ rejoin_done.reset(rejoin_done_);
rejoin_gather = recovery_set;
// need finish opening cap inodes before sending cache rejoins
dout(10) << "open_snap_parents - all open" << dendl;
do_delayed_cap_imports();
- assert(rejoin_done != NULL);
- rejoin_done->complete(0);
- rejoin_done = NULL;
+ assert(rejoin_done);
+ rejoin_done.release()->complete(0);
reconnected_caps.clear();
}
}
pcb.add_u64_counter(l_mdc_recovery_completed, "recovery_completed",
"File recoveries completed", "recd");
- logger = pcb.create_perf_counters();
- g_ceph_context->get_perfcounters_collection()->add(logger);
- recovery_queue.set_logger(logger);
- stray_manager.set_logger(logger);
+ logger.reset(pcb.create_perf_counters());
+ g_ceph_context->get_perfcounters_collection()->add(logger.get());
+ recovery_queue.set_logger(logger.get());
+ stray_manager.set_logger(logger.get());
}
/**
set<CInode*> base_inodes;
- PerfCounters *logger;
+ std::unique_ptr<PerfCounters> logger;
Filer filer;
if (rejoins_pending)
rejoin_send_rejoins();
}
- MDSInternalContext *rejoin_done;
- MDSInternalContext *resolve_done;
+ std::unique_ptr<MDSInternalContext> rejoin_done;
+ std::unique_ptr<MDSInternalContext> resolve_done;
public:
void rejoin_start(MDSInternalContext *rejoin_done_);
void rejoin_gather_finish();
void _queued_file_recover_cow(CInode *in, MutationRef& mut);
// subsystems
- Migrator *migrator;
+ std::unique_ptr<Migrator> migrator;
public:
explicit MDCache(MDSRank *m);