Keep a bool sharded in memory and use for set/get_allow_sharded_objects()
Create a file "sharded" in the data dir when sharded is true during _save()
Check for file "sharded" during _load()
Fixes: #9661
Signed-off-by: David Zafman <dzafman@redhat.com>
if (r < 0)
return r;
+ if (sharded) {
+ string fn = path + "/sharded";
+ bufferlist bl;
+ int r = bl.write_file(fn.c_str());
+ if (r < 0)
+ return r;
+ }
+
return 0;
}
coll_map[*q] = c;
}
+ fn = path + "/sharded";
+ struct stat st;
+ if (::stat(fn.c_str(), &st) == 0)
+ set_allow_sharded_objects();
+
dump_all();
return 0;
: ObjectStore(path),
coll_lock("MemStore::coll_lock"),
apply_lock("MemStore::apply_lock"),
- finisher(cct) { }
+ finisher(cct),
+ sharded(false) { }
~MemStore() { }
int update_version_stamp() {
return 0;
}
+ bool sharded;
void set_allow_sharded_objects() {
+ sharded = true;
}
bool get_allow_sharded_objects() {
- return true;
+ return sharded;
}
int statfs(struct statfs *buf);