// start osd
OSD *osd = new OSD(whoami, m, hbm, &monmap, dev);
- osd->init();
+ if (osd->init() < 0) {
+ cout << "error initializing osd" << std::endl;
+ return 1;
+ }
rank.wait();
? __CEPH_ASSERT_VOID_CAST (0) \
: __ceph_assert_fail (__STRING(expr), __FILE__, __LINE__, __ASSERT_FUNCTION)); \
} while (0)
+
+#define assert_warn(expr) \
+ ((expr) \
+ ? __CEPH_ASSERT_VOID_CAST (0) \
+ : __ceph_assert_warn (__STRING(expr), __FILE__, __LINE__, __ASSERT_FUNCTION))
#endif
#endif
// mount.
dout(2) << "mounting " << dev_path << dendl;
store = create_object_store(dev_path);
- assert(store);
+ if (!store)
+ return -ENODEV;
int r = store->mount();
if (r < 0) return -1;
}
// load up "current" osdmap
- assert(!osdmap);
+ assert_warn(!osdmap);
+ if (osdmap)
+ return -1;
osdmap = new OSDMap;
if (superblock.current_epoch) {
bufferlist bl;
load_pgs();
dout(2) << "superblock: i am osd" << superblock.whoami << dendl;
- assert(whoami == superblock.whoami);
+ assert_warn(whoami == superblock.whoami);
+ if (whoami != superblock.whoami)
+ return -EINVAL;
// log
char name[80];