]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/newstore: distinguish between db open and create
authorSage Weil <sage@redhat.com>
Mon, 5 Oct 2015 20:01:04 +0000 (16:01 -0400)
committerSage Weil <sage@redhat.com>
Mon, 16 Nov 2015 18:23:15 +0000 (13:23 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/newstore/NewStore.cc
src/os/newstore/NewStore.h

index 436dda799a2bf7ab74b95055f8b15f41eb3cdc87..e1b4d73ae167a1d12dcb4f24995dc08c6aa74200 100644 (file)
@@ -802,7 +802,7 @@ bool NewStore::test_mount_in_use()
   return ret;
 }
 
-int NewStore::_open_db()
+int NewStore::_open_db(bool create)
 {
   assert(!db);
   char fn[PATH_MAX];
@@ -821,7 +821,12 @@ int NewStore::_open_db()
     options = g_conf->newstore_rocksdb_options;
   db->init(options);
   stringstream err;
-  if (db->create_and_open(err)) {
+  int r;
+  if (create)
+    r = db->create_and_open(err);
+  else
+    r = db->open(err);
+  if (r) {
     derr << __func__ << " erroring opening db: " << err.str() << dendl;
     delete db;
     db = NULL;
@@ -928,7 +933,7 @@ int NewStore::mkfs()
   if (r < 0)
     goto out_close_fsid;
 
-  r = _open_db();
+  r = _open_db(true);
   if (r < 0)
     goto out_close_frag;
 
@@ -972,7 +977,7 @@ int NewStore::mount()
 
   // FIXME: superblock, features
 
-  r = _open_db();
+  r = _open_db(false);
   if (r < 0)
     goto out_frag;
 
index ae1eb9bc2b2230489e014a137be00c814cc4da51..c32e2a9d45e2a0bb86fdb3b5f930aa04efde3d96 100644 (file)
@@ -524,7 +524,7 @@ private:
   int _open_frag();
   int _create_frag();
   void _close_frag();
-  int _open_db();
+  int _open_db(bool create);
   void _close_db();
   int _open_collections();
   void _close_collections();