int r = cbl.read_file(fn.c_str(), &err);
if (r < 0)
return r;
- CollectionRef c(new Collection(cct));
+ CollectionRef c(new Collection(cct, *q));
bufferlist::iterator p = cbl.begin();
c->decode(p);
coll_map[*q] = c;
return -ENOENT;
RWLock::RLocker l(c->lock);
+ dout(10) << __func__ << " cid " << cid << " start " << start
+ << " end " << end << dendl;
map<ghobject_t,ObjectRef,ghobject_t::BitwiseComparator>::iterator p = c->object_map.lower_bound(start);
while (p != c->object_map.end() &&
ls->size() < (unsigned)max &&
else
*next = p->first;
}
+ dout(10) << __func__ << " cid " << cid << " got " << ls->size() << dendl;
return 0;
}
auto result = coll_map.insert(std::make_pair(cid, CollectionRef()));
if (!result.second)
return -EEXIST;
- result.first->second.reset(new Collection(cct));
+ result.first->second.reset(new Collection(cct, cid));
return 0;
}
return result;
}
- explicit Collection(CephContext *cct)
- : cct(cct), use_page_set(cct->_conf->memstore_page_set),
+ explicit Collection(CephContext *cct, coll_t c)
+ : cid(c),
+ cct(cct),
+ use_page_set(cct->_conf->memstore_page_set),
lock("MemStore::Collection::lock", true, false),
exists(true) {}
};