{
coll_t cid = i.get_cid();
if (_check_replay_guard(cid, spos) > 0)
- r = _create_collection(cid);
+ r = _create_collection(cid, spos);
}
break;
return object_map->get_iterator(hoid);
}
+int FileStore::_create_collection(
+ coll_t c,
+ const SequencerPosition &spos)
+{
+ char fn[PATH_MAX];
+ get_cdir(c, fn, sizeof(fn));
+ dout(15) << "create_collection " << fn << dendl;
+ int r = ::mkdir(fn, 0755);
+ if (r < 0)
+ r = -errno;
+ if (r == -EEXIST && replaying)
+ r = 0;
+ dout(10) << "create_collection " << fn << " = " << r << dendl;
+
+ if (r < 0)
+ return r;
+ r = init_index(c);
+ if (r < 0)
+ return r;
+ _set_replay_guard(c, spos);
+ return 0;
+}
+
+// DEPRECATED -- remove with _split_collection_create
int FileStore::_create_collection(coll_t c)
{
char fn[PATH_MAX];
ObjectMap::ObjectMapIterator get_omap_iterator(coll_t c, const hobject_t &hoid);
int _create_collection(coll_t c);
+ int _create_collection(coll_t c, const SequencerPosition &spos);
int _destroy_collection(coll_t c);
int _collection_add(coll_t c, coll_t ocid, const hobject_t& o,
const SequencerPosition& spos);