return &p->second;
}
+ int64_t get_new_blob_id() {
+ return blob_map.empty() ? 1 : blob_map.rbegin()->first + 1;
+ }
+
friend void intrusive_ptr_add_ref(Enode *e) { e->get(); }
friend void intrusive_ptr_release(Enode *e) { e->put(); }
OnodeRef get_onode(const ghobject_t& oid, bool create);
EnodeRef get_enode(uint32_t hash);
+ bluestore_blob_t *get_blob_ptr(OnodeRef& o, int64_t blob) {
+ if (blob < 0 && !o->enode)
+ o->enode = get_enode(o->oid.hobj.get_hash());
+ return o->get_blob_ptr(blob);
+ }
+
const coll_t &get_cid() override {
return cid;
}
return fp;
}
+ bluestore_blob_t *add_blob(int64_t *id) {
+ *id = blob_map.empty() ? 1 : blob_map.rbegin()->first + 1;
+ return &blob_map[*id];
+ }
+
bluestore_blob_t *get_blob_ptr(int64_t id) {
bluestore_blob_map_t::iterator p = blob_map.find(id);
if (p == blob_map.end())