]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
client: use unique_ptr for fsmap_user 11837/head
authorPatrick Donnelly <pdonnell@redhat.com>
Wed, 2 Nov 2016 15:48:55 +0000 (11:48 -0400)
committerPatrick Donnelly <pdonnell@redhat.com>
Mon, 14 Nov 2016 02:12:46 +0000 (21:12 -0500)
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
src/client/Client.cc
src/client/Client.h

index 63eda341dfcce9923e5c3b59d862c591fcbbcf96..c9f69069f4b1d4cc60b946059488c050c815badb 100644 (file)
@@ -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_user(nullptr),
+    cap_epoch_barrier(0),
     last_tid(0), oldest_tid(0), last_flush_tid(1),
     initialized(false), authenticated(false),
     mounted(false), unmounting(false),
@@ -2521,8 +2521,7 @@ void Client::handle_fs_map(MFSMap *m)
 
 void Client::handle_fs_map_user(MFSMapUser *m)
 {
-  delete fsmap_user;
-  fsmap_user = new FSMapUser;
+  fsmap_user.reset(new FSMapUser);
   *fsmap_user = m->get_fsmap();
   m->put();
 
@@ -5442,12 +5441,12 @@ int Client::fetch_fsmap(bool user)
   ldout(cct, 10) << __func__ << " learned FSMap version " << fsmap_latest << dendl;
 
   if (user) {
-    if (fsmap_user == nullptr || fsmap_user->get_epoch() < fsmap_latest) {
+    if (!fsmap_user || fsmap_user->get_epoch() < fsmap_latest) {
       monclient->sub_want("fsmap.user", fsmap_latest, CEPH_SUBSCRIBE_ONETIME);
       monclient->renew_subs();
       wait_on_list(waiting_for_fsmap);
     }
-    assert(fsmap_user != nullptr);
+    assert(fsmap_user);
     assert(fsmap_user->get_epoch() >= fsmap_latest);
   } else {
     if (!fsmap || fsmap->get_epoch() < fsmap_latest) {
index 0051f387a46db230abe2c46a1f291fae4ae7ed38..81ac751552fa6fc11fc5e2640739fc6ee3941791 100644 (file)
@@ -321,7 +321,7 @@ protected:
   // FSMap, for when using mds_command
   list<Cond*> waiting_for_fsmap;
   std::unique_ptr<FSMap> fsmap;
-  FSMapUser *fsmap_user;
+  std::unique_ptr<FSMapUser> fsmap_user;
 
   // MDS command state
   CommandTable<MDSCommandOp> command_table;