]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os: list -> vector in collection_list, list_collections
authorSage Weil <sage@newdream.net>
Mon, 18 Aug 2008 23:44:27 +0000 (16:44 -0700)
committerSage Weil <sage@newdream.net>
Mon, 18 Aug 2008 23:44:27 +0000 (16:44 -0700)
src/dupstore.cc
src/ebofs/Ebofs.cc
src/ebofs/Ebofs.h
src/os/Fake.h
src/os/FileStore.cc
src/os/FileStore.h
src/os/ObjectStore.h
src/osd/OSD.cc
src/osd/PG.cc
src/osd/ReplicatedPG.cc

index 3dd66e408bd55d702ef95f831503944186264218..cd3480d1288d19711bc33848ff311e14a4f81402 100644 (file)
@@ -29,12 +29,12 @@ int dupstore(ObjectStore* src, ObjectStore* dst)
   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;
@@ -43,11 +43,11 @@ int dupstore(ObjectStore* src, ObjectStore* dst)
     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 {
index 3f58ddc3e057fe917aeb56e68724653fe3bd61e1..e83aceb778ef154aaab01a605cdd0a4702210341 100644 (file)
@@ -3398,7 +3398,7 @@ int Ebofs::listattr(coll_t cid, pobject_t oid, vector<string>& attrs)
 
 /***************** 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;
@@ -3466,9 +3466,9 @@ int Ebofs::_destroy_collection(coll_t cid)
   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));
@@ -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<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;
index 158e0c811881ff4f4964b4671ca4e252756ff061..3fab714a65d688544e57370a69632c4bf49f2bb4 100644 (file)
@@ -281,7 +281,7 @@ protected:
   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);
@@ -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<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);
index fa1398bdabb4aabb75f42846f756de3e9c90a121..5b038d855645b0d28a79575e0f9ee29f0628ff2c 100644 (file)
@@ -34,7 +34,7 @@ class FakeCollections {
   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();
@@ -99,7 +99,7 @@ class FakeCollections {
     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();
index e075983f780296c28948b10838848eb8d3dedb9a..30c9d8dc343694a5c0fa6285f48df8b627316444 100644 (file)
@@ -1431,7 +1431,7 @@ int FileStore::collection_getattrs(coll_t cid, map<string,bufferptr>& aset)
 // --------------------------
 // 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);
 
@@ -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<pobject_t>& ls) 
+int FileStore::collection_list(coll_t c, vector<pobject_t>& ls) 
 {  
   if (fake_collections) return collections.collection_list(c, ls);
 
index 70781e809aedba44113ccf6886d7297a3295df27..866f99380818e17442ed33353bdf94de32f3caee 100644 (file)
@@ -127,14 +127,14 @@ class FileStore : public JournalingObjectStore {
   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) {}
index af3e5b45f5728944b4866c3eb2815ec998c1bacf..bf6b0e3476a0d30f0498ead5e4be97c559d4ef85 100644 (file)
@@ -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<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;
index 0f9af1dfa4168670185fc0c967f347afcc988b90..9e09014b58a4187072911ff63be35c021241fb47 100644 (file)
@@ -598,12 +598,12 @@ void OSD::_remove_unlock_pg(PG *pg)
   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);
@@ -628,10 +628,10 @@ void OSD::load_pgs()
   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)
@@ -2134,13 +2134,11 @@ void OSD::split_pg(PG *parent, map<pg_t,PG*>& children, ObjectStore::Transaction
   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) {
index 4e7ed79fa0f18bde1653d6047d476c54f29ed949..4afba8017af5aec16bd553fe5193f4de3d685915 100644 (file)
@@ -444,12 +444,12 @@ void PG::generate_backlog()
   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++;
index 0d3d5753ec20037f6460933d12d6fd2f1c3c011d..9d17391abfc52187ae52e990c0e881f61a36576c 100644 (file)
@@ -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<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;
@@ -2099,11 +2099,11 @@ void ReplicatedPG::clean_up_local(ObjectStore::Transaction& t)
     // 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);