fakemessenger_serialize: true,
fake_osdmap_expand: 0,
+ osd_remount_at: 0,
+
kill_after: 0,
tick: 0,
fakestore_writesync: false,
fakestore_syncthreads: 4,
fakestore_fakeattr: true,
+ fakestore_dev: 0,
// --- ebofs ---
ebofs: 0,
else if (strcmp(args[i], "--fake_osdmap_expand") == 0)
g_conf.fake_osdmap_expand = atoi(args[++i]);
+ else if (strcmp(args[i], "--osd_remount_at") == 0)
+ g_conf.osd_remount_at = atoi(args[++i]);
//else if (strcmp(args[i], "--fake_osd_sync") == 0)
//g_conf.fake_osd_sync = atoi(args[++i]);
g_conf.fakestore_fsync = atoi(args[++i]);
else if (strcmp(args[i], "--fakestore_writesync") == 0)
g_conf.fakestore_writesync = atoi(args[++i]);
+ else if (strcmp(args[i], "--fakestore_dev") == 0)
+ g_conf.fakestore_dev = args[++i];
else if (strcmp(args[i], "--obfs") == 0) {
g_conf.uofs = 1;
int FakeStore::mount()
{
+ if (g_conf.fakestore_dev) {
+ char cmd[100];
+ sprintf(cmd,"mount %s", g_conf.fakestore_dev);
+ system(cmd);
+ }
+
string mydir;
get_dir(mydir);
//delete fsync_threadpool;
+ if (g_conf.fakestore_dev) {
+ char cmd[100];
+ sprintf(cmd,"umount %s", g_conf.fakestore_dev);
+ system(cmd);
+ }
+
// nothing
return 0;
}
#define ROLE_TYPE(x) ((x)>0 ? 1:(x))
+class C_Remount : public Context {
+ OSD *osd;
+public:
+ C_Remount(OSD *o) : osd(o) {}
+ void finish(int) {
+ osd->force_remount();
+ }
+};
+
+void OSD::force_remount()
+{
+ dout(0) << "forcing remount" << endl;
+ osd_lock.Lock();
+ {
+ store->umount();
+ store->mount();
+ }
+ osd_lock.Unlock();
+ dout(0) << "finished remount" << endl;
+}
+
+
// cons/des