From c4c3d32a269748e7c1dc88b88a0dc899f49a2c3b Mon Sep 17 00:00:00 2001 From: Patrick Donnelly Date: Wed, 2 Nov 2016 11:47:25 -0400 Subject: [PATCH] client: use unique_ptr for FSMap Signed-off-by: Patrick Donnelly --- src/client/Client.cc | 13 +++++-------- src/client/Client.h | 2 +- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/client/Client.cc b/src/client/Client.cc index 75a721a09cb..63eda341dfc 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -247,7 +247,7 @@ Client::Client(Messenger *m, MonClient *mc) objecter_finisher(m->cct), tick_event(NULL), monclient(mc), messenger(m), whoami(mc->get_global_id()), - cap_epoch_barrier(0), fsmap(nullptr), fsmap_user(nullptr), + cap_epoch_barrier(0), fsmap_user(nullptr), last_tid(0), oldest_tid(0), last_flush_tid(1), initialized(false), authenticated(false), mounted(false), unmounting(false), @@ -314,7 +314,6 @@ Client::~Client() delete filer; delete objecter; - delete fsmap; delete logger; } @@ -2512,9 +2511,7 @@ bool Client::ms_dispatch(Message *m) void Client::handle_fs_map(MFSMap *m) { - delete fsmap; - fsmap = new FSMap; - *fsmap = m->get_fsmap(); + fsmap.reset(new FSMap(m->get_fsmap())); m->put(); signal_cond_list(waiting_for_fsmap); @@ -5337,7 +5334,7 @@ int Client::resolve_mds( const std::string &mds_spec, std::vector *targets) { - assert(fsmap != nullptr); + assert(fsmap); assert(targets != nullptr); mds_role_t role; @@ -5453,12 +5450,12 @@ int Client::fetch_fsmap(bool user) assert(fsmap_user != nullptr); assert(fsmap_user->get_epoch() >= fsmap_latest); } else { - if (fsmap == nullptr || fsmap->get_epoch() < fsmap_latest) { + if (!fsmap || fsmap->get_epoch() < fsmap_latest) { monclient->sub_want("fsmap", fsmap_latest, CEPH_SUBSCRIBE_ONETIME); monclient->renew_subs(); wait_on_list(waiting_for_fsmap); } - assert(fsmap != nullptr); + assert(fsmap); assert(fsmap->get_epoch() >= fsmap_latest); } ldout(cct, 10) << __func__ << " finished waiting for FSMap version " diff --git a/src/client/Client.h b/src/client/Client.h index 9aa231a5704..0051f387a46 100644 --- a/src/client/Client.h +++ b/src/client/Client.h @@ -320,7 +320,7 @@ protected: // FSMap, for when using mds_command list waiting_for_fsmap; - FSMap *fsmap; + std::unique_ptr fsmap; FSMapUser *fsmap_user; // MDS command state -- 2.39.5