From 3a4d583f8576142abb84b34d97dd9c018f4c9764 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 16 Nov 2015 16:02:48 -0500 Subject: [PATCH] os/newstore: always create db.wal Signed-off-by: Sage Weil --- src/kv/RocksDBStore.cc | 11 ++++++++++- src/os/newstore/NewStore.cc | 13 +++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/kv/RocksDBStore.cc b/src/kv/RocksDBStore.cc index 561b065ed9bf9..abcf114e8de68 100644 --- a/src/kv/RocksDBStore.cc +++ b/src/kv/RocksDBStore.cc @@ -152,10 +152,19 @@ int RocksDBStore::init(string _options_str) int RocksDBStore::create_and_open(ostream &out) { + int r = ::mkdir(path.c_str(), 0755); + if (r < 0) + r = -errno; + if (r < 0 && r != -EEXIST) { + derr << __func__ << " failed to create " << path << ": " << cpp_strerror(r) + << dendl; + return r; + } + // create tertiary paths string wal_path = path + ".wal"; struct stat st; - int r = ::stat(wal_path.c_str(), &st); + r = ::stat(wal_path.c_str(), &st); if (r < 0) r = -errno; if (r == -ENOENT) { diff --git a/src/os/newstore/NewStore.cc b/src/os/newstore/NewStore.cc index 132724410924f..c4ff39b7a2abb 100644 --- a/src/os/newstore/NewStore.cc +++ b/src/os/newstore/NewStore.cc @@ -923,6 +923,19 @@ int NewStore::_open_db(bool create) << dendl; return r; } + + // wal_dir, too! + char walfn[PATH_MAX]; + snprintf(walfn, sizeof(walfn), "%s/db.wal", path.c_str()); + r = ::mkdir(walfn, 0755); + if (r < 0) + r = -errno; + if (r < 0 && r != -EEXIST) { + derr << __func__ << " failed to create " << walfn + << ": " << cpp_strerror(r) + << dendl; + return r; + } } db = KeyValueDB::create(g_ceph_context, g_conf->newstore_backend, -- 2.39.5