hash_map<pobject_t, coll_t> did_object;
// collections
- list<coll_t> collections;
+ vector<coll_t> collections;
src->list_collections(collections);
int num = collections.size();
cout << num << " collections" << std::endl;
int i = 1;
- for (list<coll_t>::iterator p = collections.begin();
+ for (vector<coll_t>::iterator p = collections.begin();
p != collections.end();
++p) {
cout << "collection " << i++ << "/" << num << " " << hex << *p << dec << std::endl;
src->collection_getattrs(*p, attrs);
dst->collection_setattrs(*p, attrs);
- list<pobject_t> o;
+ vector<pobject_t> o;
src->collection_list(*p, o);
int numo = o.size();
int j = 1;
- for (list<pobject_t>::iterator q = o.begin(); q != o.end(); q++) {
+ for (vector<pobject_t>::iterator q = o.begin(); q != o.end(); q++) {
if (did_object.count(*q))
dst->collection_add(*p, did_object[*q], *q, 0);
else {
/***************** collections ******************/
-int Ebofs::list_collections(list<coll_t>& ls)
+int Ebofs::list_collections(vector<coll_t>& ls)
{
ebofs_lock.Lock();
dout(9) << "list_collections " << dendl;
assert(cn);
// hose mappings
- list<pobject_t> objects;
+ vector<pobject_t> objects;
collection_list(cid, objects);
- for (list<pobject_t>::iterator i = objects.begin();
+ for (vector<pobject_t>::iterator i = objects.begin();
i != objects.end();
i++) {
co_tab->remove(coll_pobject_t(cid,*i));
return 0;
}
-int Ebofs::collection_list(coll_t cid, list<pobject_t>& ls)
+int Ebofs::collection_list(coll_t cid, vector<pobject_t>& ls)
{
ebofs_lock.Lock();
dout(9) << "collection_list " << hex << cid << dec << dendl;
int get_object_collections(coll_t cid, pobject_t oid, set<coll_t>& ls);
// collections
- int list_collections(list<coll_t>& ls);
+ int list_collections(vector<coll_t>& ls);
bool collection_exists(coll_t c);
int create_collection(coll_t c, Context *onsafe);
int collection_add(coll_t c, coll_t cid, pobject_t o, Context *onsafe);
int collection_remove(coll_t c, pobject_t o, Context *onsafe);
- int collection_list(coll_t c, list<pobject_t>& o);
+ int collection_list(coll_t c, vector<pobject_t>& o);
int collection_setattr(coll_t cid, const char *name, const void *value, size_t size, Context *onsafe);
int collection_setattrs(coll_t cid, map<string,bufferptr> &aset);
FakeCollections(ObjectStore *s) : store(s) {}
// faked collections
- int list_collections(list<coll_t>& ls) {
+ int list_collections(vector<coll_t>& ls) {
faker_lock.Lock();
int r = 0;
for (hash_map< coll_t, set<pobject_t> >::iterator p = fakecollections.begin();
return 0;
}
- int collection_list(coll_t c, list<pobject_t>& o) {
+ int collection_list(coll_t c, vector<pobject_t>& o) {
faker_lock.Lock();
int r = 0;
for (set<pobject_t>::iterator p = fakecollections[c].begin();
// --------------------------
// collections
-int FileStore::list_collections(list<coll_t>& ls)
+int FileStore::list_collections(vector<coll_t>& ls)
{
if (fake_collections) return collections.list_collections(ls);
return r < 0 ? -errno:r;
}
-int FileStore::collection_list(coll_t c, list<pobject_t>& ls)
+int FileStore::collection_list(coll_t c, vector<pobject_t>& ls)
{
if (fake_collections) return collections.collection_list(c, ls);
int collection_setattrs(coll_t cid, map<string,bufferptr> &aset);
// collections
- int list_collections(list<coll_t>& ls);
+ int list_collections(vector<coll_t>& ls);
int create_collection(coll_t c, Context *onsafe=0);
int destroy_collection(coll_t c, Context *onsafe=0);
int collection_stat(coll_t c, struct stat *st);
bool collection_exists(coll_t c);
int collection_add(coll_t c, coll_t ocid, pobject_t o, Context *onsafe=0);
int collection_remove(coll_t c, pobject_t o, Context *onsafe=0);
- int collection_list(coll_t c, list<pobject_t>& o);
+ int collection_list(coll_t c, vector<pobject_t>& o);
int pick_object_revision_lt(coll_t cid, pobject_t& oid) { return -1; }
void trim_from_cache(coll_t cid, pobject_t oid, __u64 offset, size_t len) {}
//virtual int listattr(pobject_t oid, char *attrs, size_t size) {return 0;} //= 0;
// collections
- virtual int list_collections(list<coll_t>& ls) = 0;
+ virtual int list_collections(vector<coll_t>& ls) = 0;
virtual int create_collection(coll_t c, Context *onsafe=0) = 0;
virtual int destroy_collection(coll_t c, Context *onsafe=0) = 0;
virtual bool collection_exists(coll_t c) = 0;
virtual int collection_add(coll_t c, coll_t ocid, pobject_t o, Context *onsafe=0) = 0;
virtual int collection_remove(coll_t c, pobject_t o, Context *onsafe=0) = 0;
- virtual int collection_list(coll_t c, list<pobject_t>& o) = 0;
+ virtual int collection_list(coll_t c, vector<pobject_t>& o) = 0;
virtual int collection_setattr(coll_t cid, const char *name,
const void *value, size_t size,
Context *onsafe=0) = 0;
dout(10) << "_remove_unlock_pg " << pgid << dendl;
// remove from store
- list<pobject_t> olist;
+ vector<pobject_t> olist;
store->collection_list(pgid.to_coll(), olist);
ObjectStore::Transaction t;
{
- for (list<pobject_t>::iterator p = olist.begin();
+ for (vector<pobject_t>::iterator p = olist.begin();
p != olist.end();
p++)
t.remove(pgid.to_coll(), *p);
dout(10) << "load_pgs" << dendl;
assert(pg_map.empty());
- list<coll_t> ls;
+ vector<coll_t> ls;
store->list_collections(ls);
- for (list<coll_t>::iterator it = ls.begin();
+ for (vector<coll_t>::iterator it = ls.begin();
it != ls.end();
it++) {
if (*it == 0)
dout(10) << "split_pg " << *parent << dendl;
pg_t parentid = parent->info.pgid;
- list<pobject_t> olist;
+ vector<pobject_t> olist;
store->collection_list(parent->info.pgid.to_coll(), olist);
- while (!olist.empty()) {
- pobject_t poid = olist.front();
- olist.pop_front();
-
+ for (vector<pobject_t>::iterator p = olist.begin(); p != olist.end(); p++) {
+ pobject_t poid = *p;
ceph_object_layout l = osdmap->make_object_layout(poid.oid, parentid.type(), parentid.size(),
parentid.pool(), parentid.preferred());
if (le64_to_cpu(l.ol_pgid) != parentid.u.pg64) {
assert(!log.backlog);
log.backlog = true;
- list<pobject_t> olist;
+ vector<pobject_t> olist;
osd->store->collection_list(info.pgid.to_coll(), olist);
int local = 0;
map<eversion_t,Log::Entry> add;
- for (list<pobject_t>::iterator it = olist.begin();
+ for (vector<pobject_t>::iterator it = olist.begin();
it != olist.end();
it++) {
local++;
is_active()) {
snapid_t sn = *info.removed_snaps.begin();
coll_t c = info.pgid.to_snap_coll(sn);
- list<pobject_t> ls;
+ vector<pobject_t> ls;
osd->store->collection_list(c, ls);
dout(10) << "snap_trimmer collection " << c << " has " << ls.size() << " items" << dendl;
ObjectStore::Transaction t;
- for (list<pobject_t>::iterator p = ls.begin(); p != ls.end(); p++) {
+ for (vector<pobject_t>::iterator p = ls.begin(); p != ls.end(); p++) {
pobject_t coid = *p;
bufferlist bl;
// FIXME: sloppy pobject vs object conversions abound! ***
// be thorough.
- list<pobject_t> ls;
+ vector<pobject_t> ls;
osd->store->collection_list(info.pgid.to_coll(), ls);
set<object_t> s;
- for (list<pobject_t>::iterator i = ls.begin();
+ for (vector<pobject_t>::iterator i = ls.begin();
i != ls.end();
i++)
s.insert(i->oid);