From 5797c3e57499a58bdf5615f0100a68a9ae0df87c Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 18 Aug 2008 16:44:27 -0700 Subject: [PATCH] os: list -> vector in collection_list, list_collections --- src/dupstore.cc | 8 ++++---- src/ebofs/Ebofs.cc | 8 ++++---- src/ebofs/Ebofs.h | 4 ++-- src/os/Fake.h | 4 ++-- src/os/FileStore.cc | 4 ++-- src/os/FileStore.h | 4 ++-- src/os/ObjectStore.h | 4 ++-- src/osd/OSD.cc | 16 +++++++--------- src/osd/PG.cc | 4 ++-- src/osd/ReplicatedPG.cc | 8 ++++---- 10 files changed, 31 insertions(+), 33 deletions(-) diff --git a/src/dupstore.cc b/src/dupstore.cc index 3dd66e408bd55..cd3480d1288d1 100644 --- a/src/dupstore.cc +++ b/src/dupstore.cc @@ -29,12 +29,12 @@ int dupstore(ObjectStore* src, ObjectStore* dst) hash_map did_object; // collections - list collections; + vector collections; src->list_collections(collections); int num = collections.size(); cout << num << " collections" << std::endl; int i = 1; - for (list::iterator p = collections.begin(); + for (vector::iterator p = collections.begin(); p != collections.end(); ++p) { cout << "collection " << i++ << "/" << num << " " << hex << *p << dec << std::endl; @@ -43,11 +43,11 @@ int dupstore(ObjectStore* src, ObjectStore* dst) src->collection_getattrs(*p, attrs); dst->collection_setattrs(*p, attrs); - list o; + vector o; src->collection_list(*p, o); int numo = o.size(); int j = 1; - for (list::iterator q = o.begin(); q != o.end(); q++) { + for (vector::iterator q = o.begin(); q != o.end(); q++) { if (did_object.count(*q)) dst->collection_add(*p, did_object[*q], *q, 0); else { diff --git a/src/ebofs/Ebofs.cc b/src/ebofs/Ebofs.cc index 3f58ddc3e057f..e83aceb778ef1 100644 --- a/src/ebofs/Ebofs.cc +++ b/src/ebofs/Ebofs.cc @@ -3398,7 +3398,7 @@ int Ebofs::listattr(coll_t cid, pobject_t oid, vector& attrs) /***************** collections ******************/ -int Ebofs::list_collections(list& ls) +int Ebofs::list_collections(vector& ls) { ebofs_lock.Lock(); dout(9) << "list_collections " << dendl; @@ -3466,9 +3466,9 @@ int Ebofs::_destroy_collection(coll_t cid) assert(cn); // hose mappings - list objects; + vector objects; collection_list(cid, objects); - for (list::iterator i = objects.begin(); + for (vector::iterator i = objects.begin(); i != objects.end(); i++) { co_tab->remove(coll_pobject_t(cid,*i)); @@ -3619,7 +3619,7 @@ int Ebofs::collection_remove(coll_t cid, pobject_t oid, Context *onsafe) return 0; } -int Ebofs::collection_list(coll_t cid, list& ls) +int Ebofs::collection_list(coll_t cid, vector& ls) { ebofs_lock.Lock(); dout(9) << "collection_list " << hex << cid << dec << dendl; diff --git a/src/ebofs/Ebofs.h b/src/ebofs/Ebofs.h index 158e0c811881f..3fab714a65d68 100644 --- a/src/ebofs/Ebofs.h +++ b/src/ebofs/Ebofs.h @@ -281,7 +281,7 @@ protected: int get_object_collections(coll_t cid, pobject_t oid, set& ls); // collections - int list_collections(list& ls); + int list_collections(vector& ls); bool collection_exists(coll_t c); int create_collection(coll_t c, Context *onsafe); @@ -289,7 +289,7 @@ protected: 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& o); + int collection_list(coll_t c, vector& 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 &aset); diff --git a/src/os/Fake.h b/src/os/Fake.h index fa1398bdabb4a..5b038d855645b 100644 --- a/src/os/Fake.h +++ b/src/os/Fake.h @@ -34,7 +34,7 @@ class FakeCollections { FakeCollections(ObjectStore *s) : store(s) {} // faked collections - int list_collections(list& ls) { + int list_collections(vector& ls) { faker_lock.Lock(); int r = 0; for (hash_map< coll_t, set >::iterator p = fakecollections.begin(); @@ -99,7 +99,7 @@ class FakeCollections { return 0; } - int collection_list(coll_t c, list& o) { + int collection_list(coll_t c, vector& o) { faker_lock.Lock(); int r = 0; for (set::iterator p = fakecollections[c].begin(); diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc index e075983f78029..30c9d8dc34369 100644 --- a/src/os/FileStore.cc +++ b/src/os/FileStore.cc @@ -1431,7 +1431,7 @@ int FileStore::collection_getattrs(coll_t cid, map& aset) // -------------------------- // collections -int FileStore::list_collections(list& ls) +int FileStore::list_collections(vector& ls) { if (fake_collections) return collections.list_collections(ls); @@ -1549,7 +1549,7 @@ int FileStore::collection_remove(coll_t c, pobject_t o, return r < 0 ? -errno:r; } -int FileStore::collection_list(coll_t c, list& ls) +int FileStore::collection_list(coll_t c, vector& ls) { if (fake_collections) return collections.collection_list(c, ls); diff --git a/src/os/FileStore.h b/src/os/FileStore.h index 70781e809aedb..866f99380818e 100644 --- a/src/os/FileStore.h +++ b/src/os/FileStore.h @@ -127,14 +127,14 @@ class FileStore : public JournalingObjectStore { int collection_setattrs(coll_t cid, map &aset); // collections - int list_collections(list& ls); + int list_collections(vector& 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& o); + int collection_list(coll_t c, vector& 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) {} diff --git a/src/os/ObjectStore.h b/src/os/ObjectStore.h index af3e5b45f5728..bf6b0e3476a0d 100644 --- a/src/os/ObjectStore.h +++ b/src/os/ObjectStore.h @@ -597,13 +597,13 @@ public: //virtual int listattr(pobject_t oid, char *attrs, size_t size) {return 0;} //= 0; // collections - virtual int list_collections(list& ls) = 0; + virtual int list_collections(vector& 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& o) = 0; + virtual int collection_list(coll_t c, vector& o) = 0; virtual int collection_setattr(coll_t cid, const char *name, const void *value, size_t size, Context *onsafe=0) = 0; diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 0f9af1dfa4168..9e09014b58a41 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -598,12 +598,12 @@ void OSD::_remove_unlock_pg(PG *pg) dout(10) << "_remove_unlock_pg " << pgid << dendl; // remove from store - list olist; + vector olist; store->collection_list(pgid.to_coll(), olist); ObjectStore::Transaction t; { - for (list::iterator p = olist.begin(); + for (vector::iterator p = olist.begin(); p != olist.end(); p++) t.remove(pgid.to_coll(), *p); @@ -628,10 +628,10 @@ void OSD::load_pgs() dout(10) << "load_pgs" << dendl; assert(pg_map.empty()); - list ls; + vector ls; store->list_collections(ls); - for (list::iterator it = ls.begin(); + for (vector::iterator it = ls.begin(); it != ls.end(); it++) { if (*it == 0) @@ -2134,13 +2134,11 @@ void OSD::split_pg(PG *parent, map& children, ObjectStore::Transaction dout(10) << "split_pg " << *parent << dendl; pg_t parentid = parent->info.pgid; - list olist; + vector olist; store->collection_list(parent->info.pgid.to_coll(), olist); - while (!olist.empty()) { - pobject_t poid = olist.front(); - olist.pop_front(); - + for (vector::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) { diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 4e7ed79fa0f18..4afba8017af5a 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -444,12 +444,12 @@ void PG::generate_backlog() assert(!log.backlog); log.backlog = true; - list olist; + vector olist; osd->store->collection_list(info.pgid.to_coll(), olist); int local = 0; map add; - for (list::iterator it = olist.begin(); + for (vector::iterator it = olist.begin(); it != olist.end(); it++) { local++; diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 0d3d5753ec200..9d17391abfc52 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -457,14 +457,14 @@ bool ReplicatedPG::snap_trimmer() is_active()) { snapid_t sn = *info.removed_snaps.begin(); coll_t c = info.pgid.to_snap_coll(sn); - list ls; + vector ls; osd->store->collection_list(c, ls); dout(10) << "snap_trimmer collection " << c << " has " << ls.size() << " items" << dendl; ObjectStore::Transaction t; - for (list::iterator p = ls.begin(); p != ls.end(); p++) { + for (vector::iterator p = ls.begin(); p != ls.end(); p++) { pobject_t coid = *p; bufferlist bl; @@ -2099,11 +2099,11 @@ void ReplicatedPG::clean_up_local(ObjectStore::Transaction& t) // FIXME: sloppy pobject vs object conversions abound! *** // be thorough. - list ls; + vector ls; osd->store->collection_list(info.pgid.to_coll(), ls); set s; - for (list::iterator i = ls.begin(); + for (vector::iterator i = ls.begin(); i != ls.end(); i++) s.insert(i->oid); -- 2.39.5