]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: include magic in mondata
authorSage Weil <sage@newdream.net>
Fri, 21 Nov 2008 00:59:08 +0000 (16:59 -0800)
committerSage Weil <sage@newdream.net>
Fri, 21 Nov 2008 00:59:08 +0000 (16:59 -0800)
src/cmon.cc
src/include/ceph_fs.h
src/mon/Monitor.cc

index e94ae3418c47f8dc33c5f40a64b7968d86c9981a..556478a183b92ef565d00f5d1ef9ac07e0794428 100644 (file)
@@ -29,6 +29,8 @@ using namespace std;
 
 #include "msg/SimpleMessenger.h"
 
+#include "include/nstring.h"
+
 #include "common/Timer.h"
 
 void usage()
@@ -77,6 +79,14 @@ int main(int argc, const char **argv)
   }
   int whoami = store.get_int("whoami");
 
+  bufferlist magicbl;
+  store.get_bl_ss(magicbl, "magic", 0);
+  nstring magic(magicbl.length()-1, magicbl.c_str());  // ignore trailing \n
+  if (strcmp(magic.c_str(), CEPH_MON_ONDISK_MAGIC)) {
+    cerr << "mon fs magic '" << magic << "' != current '" << CEPH_MON_ONDISK_MAGIC << "'" << std::endl;
+    exit(1);
+  }
+
   // monmap?
   bufferlist mapbl;
   store.get_bl_ss(mapbl, "monmap/latest", 0);
index 114b453a037ce518f41bc5e1057808b3848f6536..fcc246600bdaa3260c6e9b8005db687331aea3d0 100644 (file)
@@ -33,7 +33,9 @@
 #define CEPH_MDS_PROTOCOL    2
 #define CEPH_MON_PROTOCOL    2
 #define CEPH_CLIENT_PROTOCOL 1
-#define CEPH_ONDISK_FORMAT   1
+
+#define CEPH_OSD_ONDISK_MAGIC "ceph osd volume v1"
+#define CEPH_MON_ONDISK_MAGIC "ceph monitor volume v1"
 
 /*
  * types in this file are defined as little-endian, and are
index abbfa5d693a0b2e28504f788e5be5c62d02911c2..3147091d04a4df24f1ad161475c483d6e8d478cd 100644 (file)
@@ -526,6 +526,11 @@ int Monitor::mkfs()
   
   store->put_int(whoami, "whoami", 0);
 
+  bufferlist magicbl;
+  magicbl.append(CEPH_MON_ONDISK_MAGIC);
+  magicbl.append("\n");
+  store->put_bl_ss(magicbl, "magic", 0);
+
   bufferlist monmapbl;
   monmap->encode(monmapbl);
   store->put_bl_sn(monmapbl, "monmap", monmap->epoch);