]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: list -> vector
authorSage Weil <sage@newdream.net>
Thu, 7 Aug 2008 18:46:01 +0000 (11:46 -0700)
committerSage Weil <sage@newdream.net>
Thu, 7 Aug 2008 18:46:01 +0000 (11:46 -0700)
src/mds/MDCache.cc
src/mds/MDCache.h
src/mds/Server.cc
src/mds/events/EImportStart.h
src/mds/events/ESubtreeMap.h
src/mds/journal.cc
src/messages/MExportDir.h
src/messages/MMDSResolve.h
src/messages/MMDSResolveAck.h
src/messages/MMDSSlaveRequest.h

index da0da5f836de2d416f8e32ae1cb2553c1f2a71fd..855516785f496a60c3a9d92a3b1068c93c24a825 100644 (file)
@@ -671,7 +671,7 @@ void MDCache::adjust_bounded_subtree_auth(CDir *dir, set<CDir*>& bounds, pair<in
 }
 
 
-void MDCache::adjust_bounded_subtree_auth(CDir *dir, list<dirfrag_t>& bound_dfs, pair<int,int> auth)
+void MDCache::adjust_bounded_subtree_auth(CDir *dir, vector<dirfrag_t>& bound_dfs, pair<int,int> auth)
 {
   dout(7) << "adjust_bounded_subtree_auth " << dir->get_dir_auth() << " -> " << auth
          << " on " << *dir 
@@ -680,7 +680,7 @@ void MDCache::adjust_bounded_subtree_auth(CDir *dir, list<dirfrag_t>& bound_dfs,
   
   // make bounds list
   set<CDir*> bounds;
-  for (list<dirfrag_t>::iterator p = bound_dfs.begin();
+  for (vector<dirfrag_t>::iterator p = bound_dfs.begin();
        p != bound_dfs.end();
        ++p) {
     CDir *bd = get_dirfrag(*p);
@@ -1762,7 +1762,7 @@ void MDCache::send_resolve_now(int who)
       assert(migrator->get_import_state(dir->dirfrag()) >= Migrator::IMPORT_LOGGINGSTART);
       set<CDir*> bounds;
       get_subtree_bounds(dir, bounds);
-      list<dirfrag_t> dfls;
+      vector<dirfrag_t> dfls;
       for (set<CDir*>::iterator p = bounds.begin(); p != bounds.end(); ++p)
        dfls.push_back((*p)->dirfrag());
       m->add_ambiguous_import(dir->dirfrag(), dfls);
@@ -1781,7 +1781,7 @@ void MDCache::send_resolve_now(int who)
   }
 
   // ambiguous
-  for (map<dirfrag_t, list<dirfrag_t> >::iterator p = my_ambiguous_imports.begin();
+  for (map<dirfrag_t, vector<dirfrag_t> >::iterator p = my_ambiguous_imports.begin();
        p != my_ambiguous_imports.end();
        ++p) 
     m->add_ambiguous_import(p->first, p->second);
@@ -1969,7 +1969,7 @@ void MDCache::handle_resolve(MMDSResolve *m)
   // ambiguous slave requests?
   if (!m->slave_requests.empty()) {
     MMDSResolveAck *ack = new MMDSResolveAck;
-    for (list<metareqid_t>::iterator p = m->slave_requests.begin();
+    for (vector<metareqid_t>::iterator p = m->slave_requests.begin();
         p != m->slave_requests.end();
         ++p) {
       if (uncommitted_masters.count(*p)) {  //mds->sessionmap.have_completed_request(*p)) {
@@ -1989,9 +1989,9 @@ void MDCache::handle_resolve(MMDSResolve *m)
   // am i a surviving ambiguous importer?
   if (mds->is_active() || mds->is_stopping()) {
     // check for any import success/failure (from this node)
-    map<dirfrag_t, list<dirfrag_t> >::iterator p = my_ambiguous_imports.begin();
+    map<dirfrag_t, vector<dirfrag_t> >::iterator p = my_ambiguous_imports.begin();
     while (p != my_ambiguous_imports.end()) {
-      map<dirfrag_t, list<dirfrag_t> >::iterator next = p;
+      map<dirfrag_t, vector<dirfrag_t> >::iterator next = p;
       next++;
       CDir *dir = get_dirfrag(p->first);
       assert(dir);
@@ -2002,7 +2002,7 @@ void MDCache::handle_resolve(MMDSResolve *m)
        
        // check if sender claims the subtree
        bool claimed_by_sender = false;
-       for (map<dirfrag_t, list<dirfrag_t> >::iterator q = m->subtrees.begin();
+       for (map<dirfrag_t, vector<dirfrag_t> >::iterator q = m->subtrees.begin();
             q != m->subtrees.end();
             ++q) {
          CDir *base = get_dirfrag(q->first);
@@ -2010,7 +2010,7 @@ void MDCache::handle_resolve(MMDSResolve *m)
            continue;  // base not dir or an ancestor of dir, clearly doesn't claim dir.
 
          bool inside = true;
-         for (list<dirfrag_t>::iterator r = q->second.begin();
+         for (vector<dirfrag_t>::iterator r = q->second.begin();
               r != q->second.end();
               ++r) {
            CDir *bound = get_dirfrag(*r);
@@ -2037,7 +2037,7 @@ void MDCache::handle_resolve(MMDSResolve *m)
   }    
 
   // update my dir_auth values
-  for (map<dirfrag_t, list<dirfrag_t> >::iterator pi = m->subtrees.begin();
+  for (map<dirfrag_t, vector<dirfrag_t> >::iterator pi = m->subtrees.begin();
        pi != m->subtrees.end();
        ++pi) {
     CInode *diri = get_inode(pi->first.ino);
@@ -2060,7 +2060,7 @@ void MDCache::handle_resolve(MMDSResolve *m)
 
 
   // note ambiguous imports too
-  for (map<dirfrag_t, list<dirfrag_t> >::iterator pi = m->ambiguous_imports.begin();
+  for (map<dirfrag_t, vector<dirfrag_t> >::iterator pi = m->ambiguous_imports.begin();
        pi != m->ambiguous_imports.end();
        ++pi) {
     dout(10) << "noting ambiguous import on " << pi->first << " bounds " << pi->second << dendl;
@@ -2106,7 +2106,7 @@ void MDCache::handle_resolve_ack(MMDSResolveAck *ack)
   dout(10) << "handle_resolve_ack " << *ack << " from " << ack->get_source() << dendl;
   int from = ack->get_source().num();
 
-  for (list<metareqid_t>::iterator p = ack->commit.begin();
+  for (vector<metareqid_t>::iterator p = ack->commit.begin();
        p != ack->commit.end();
        ++p) {
     dout(10) << " commit on slave " << *p << dendl;
@@ -2131,7 +2131,7 @@ void MDCache::handle_resolve_ack(MMDSResolveAck *ack)
     }
   }
 
-  for (list<metareqid_t>::iterator p = ack->abort.begin();
+  for (vector<metareqid_t>::iterator p = ack->abort.begin();
        p != ack->abort.end();
        ++p) {
     dout(10) << " abort on slave " << *p << dendl;
@@ -2183,13 +2183,13 @@ void MDCache::disambiguate_imports()
   dout(10) << "disambiguate_imports" << dendl;
 
   // other nodes' ambiguous imports
-  for (map<int, map<dirfrag_t, list<dirfrag_t> > >::iterator p = other_ambiguous_imports.begin();
+  for (map<int, map<dirfrag_t, vector<dirfrag_t> > >::iterator p = other_ambiguous_imports.begin();
        p != other_ambiguous_imports.end();
        ++p) {
     int who = p->first;
     dout(10) << "ambiguous imports for mds" << who << dendl;
 
-    for (map<dirfrag_t, list<dirfrag_t> >::iterator q = p->second.begin();
+    for (map<dirfrag_t, vector<dirfrag_t> >::iterator q = p->second.begin();
         q != p->second.end();
         ++q) {
       dout(10) << " ambiguous import " << q->first << " bounds " << q->second << dendl;
@@ -2210,7 +2210,7 @@ void MDCache::disambiguate_imports()
 
   // my ambiguous imports
   while (!my_ambiguous_imports.empty()) {
-    map<dirfrag_t, list<dirfrag_t> >::iterator q = my_ambiguous_imports.begin();
+    map<dirfrag_t, vector<dirfrag_t> >::iterator q = my_ambiguous_imports.begin();
 
     CDir *dir = get_dirfrag(q->first);
     if (!dir) continue;
@@ -2245,7 +2245,7 @@ void MDCache::disambiguate_imports()
 }
 
 
-void MDCache::add_ambiguous_import(dirfrag_t base, list<dirfrag_t>& bounds) 
+void MDCache::add_ambiguous_import(dirfrag_t base, vector<dirfrag_t>& bounds) 
 {
   assert(my_ambiguous_imports.count(base) == 0);
   my_ambiguous_imports[base].swap( bounds );
@@ -2255,7 +2255,7 @@ void MDCache::add_ambiguous_import(dirfrag_t base, list<dirfrag_t>& bounds)
 void MDCache::add_ambiguous_import(CDir *base, const set<CDir*>& bounds)
 {
   // make a list
-  list<dirfrag_t> binos;
+  vector<dirfrag_t> binos;
   for (set<CDir*>::iterator p = bounds.begin();
        p != bounds.end();
        ++p) 
@@ -2280,7 +2280,7 @@ void MDCache::cancel_ambiguous_import(dirfrag_t df)
 void MDCache::finish_ambiguous_import(dirfrag_t df)
 {
   assert(my_ambiguous_imports.count(df));
-  list<dirfrag_t> bounds;
+  vector<dirfrag_t> bounds;
   bounds.swap(my_ambiguous_imports[df]);
   my_ambiguous_imports.erase(df);
   
index d37da220b91e8dcf846c0eef04e075491ec1268b..18eb0c167436dfa3c888da79340d90f618652d8d 100644 (file)
@@ -453,8 +453,8 @@ public:
   void adjust_bounded_subtree_auth(CDir *dir, set<CDir*>& bounds, int a) {
     adjust_bounded_subtree_auth(dir, bounds, pair<int,int>(a, CDIR_AUTH_UNKNOWN));
   }
-  void adjust_bounded_subtree_auth(CDir *dir, list<dirfrag_t>& bounds, pair<int,int> auth);
-  void adjust_bounded_subtree_auth(CDir *dir, list<dirfrag_t>& bounds, int a) {
+  void adjust_bounded_subtree_auth(CDir *dir, vector<dirfrag_t>& bounds, pair<int,int> auth);
+  void adjust_bounded_subtree_auth(CDir *dir, vector<dirfrag_t>& bounds, int a) {
     adjust_bounded_subtree_auth(dir, bounds, pair<int,int>(a, CDIR_AUTH_UNKNOWN));
   }
   void map_dirfrag_set(list<dirfrag_t>& dfs, set<CDir*>& result);
@@ -557,9 +557,9 @@ public:
 protected:
   // [resolve]
   // from EImportStart w/o EImportFinish during journal replay
-  map<dirfrag_t, list<dirfrag_t> >            my_ambiguous_imports;  
+  map<dirfrag_t, vector<dirfrag_t> >            my_ambiguous_imports;  
   // from MMDSResolves
-  map<int, map<dirfrag_t, list<dirfrag_t> > > other_ambiguous_imports;  
+  map<int, map<dirfrag_t, vector<dirfrag_t> > > other_ambiguous_imports;  
 
   map<int, map<metareqid_t, MDSlaveUpdate*> > uncommitted_slave_updates;  // slave: for replay.
 
@@ -597,7 +597,7 @@ public:
   }
 
   // ambiguous imports
-  void add_ambiguous_import(dirfrag_t base, list<dirfrag_t>& bounds);
+  void add_ambiguous_import(dirfrag_t base, vector<dirfrag_t>& bounds);
   void add_ambiguous_import(CDir *base, const set<CDir*>& bounds);
   bool have_ambiguous_import(dirfrag_t base) {
     return my_ambiguous_imports.count(base);
index b0209c0455455528a2847ac6815f89a4cdcb4456..9f201c5157ae91e59d53fb4d3d625731a95f0e92 100644 (file)
@@ -1068,7 +1068,7 @@ void Server::handle_slave_auth_pin(MDRequest *mdr)
   list<MDSCacheObject*> objects;
   bool fail = false;
 
-  for (list<MDSCacheObjectInfo>::iterator p = mdr->slave_request->get_authpins().begin();
+  for (vector<MDSCacheObjectInfo>::iterator p = mdr->slave_request->get_authpins().begin();
        p != mdr->slave_request->get_authpins().end();
        ++p) {
     MDSCacheObject *object = mdcache->get_object(*p);
@@ -1141,7 +1141,7 @@ void Server::handle_slave_auth_pin_ack(MDRequest *mdr, MMDSSlaveRequest *ack)
 
   // added auth pins?
   set<MDSCacheObject*> pinned;
-  for (list<MDSCacheObjectInfo>::iterator p = ack->get_authpins().begin();
+  for (vector<MDSCacheObjectInfo>::iterator p = ack->get_authpins().begin();
        p != ack->get_authpins().end();
        ++p) {
     MDSCacheObject *object = mdcache->get_object(*p);
index 6b076a30838461beb5cceea975c666886454f1b0..6b92d9f3f02ee33e0fe55a1d75a0aa05651b0329 100644 (file)
@@ -26,7 +26,7 @@
 class EImportStart : public LogEvent {
 protected:
   dirfrag_t base;
-  list<dirfrag_t> bounds;
+  vector<dirfrag_t> bounds;
 
  public:
   EMetaBlob metablob;
@@ -34,8 +34,8 @@ protected:
   version_t cmapv;
 
   EImportStart(dirfrag_t di,
-              list<dirfrag_t>& b) : LogEvent(EVENT_IMPORTSTART), 
-                                    base(di), bounds(b) { }
+              vector<dirfrag_t>& b) : LogEvent(EVENT_IMPORTSTART), 
+                                      base(di), bounds(b) { }
   EImportStart() : LogEvent(EVENT_IMPORTSTART) { }
   
   void print(ostream& out) {
index 28a5c5cbddb9d5231a1feb71cb38d6ed7d5f2492..aaedc859f304b64f63810b9bc0a9fb790624c20b 100644 (file)
@@ -21,7 +21,7 @@
 class ESubtreeMap : public LogEvent {
 public:
   EMetaBlob metablob;
-  map<dirfrag_t, list<dirfrag_t> > subtrees;
+  map<dirfrag_t, vector<dirfrag_t> > subtrees;
 
   ESubtreeMap() : LogEvent(EVENT_SUBTREEMAP) { }
   
index e2640c28880ba7387f6ef248375d5d897af2347e..abe044f61cfec1bf19f03b975535811a516a4b03 100644 (file)
@@ -800,7 +800,7 @@ void ESubtreeMap::replay(MDS *mds)
   metablob.replay(mds, _segment);
   
   // restore import/export maps
-  for (map<dirfrag_t, list<dirfrag_t> >::iterator p = subtrees.begin();
+  for (map<dirfrag_t, vector<dirfrag_t> >::iterator p = subtrees.begin();
        p != subtrees.end();
        ++p) {
     CDir *dir = mds->mdcache->get_dirfrag(p->first);
index 595267a024bb522f04b4b5493dfffb08dc97df80..aeb92a6657d487354fe8629efb447c8d970dc625 100644 (file)
@@ -23,7 +23,7 @@ class MExportDir : public Message {
  public:  
   dirfrag_t dirfrag;
   bufferlist export_data;
-  list<dirfrag_t> bounds;
+  vector<dirfrag_t> bounds;
   bufferlist client_map;
 
   MExportDir() {}
index 59d2d3e5e172b20c24ed542a768868f0f9fd8b96..1f59e72fea75247137f3fb0d908454f78ab283c4 100644 (file)
@@ -21,9 +21,9 @@
 
 class MMDSResolve : public Message {
  public:
-  map<dirfrag_t, list<dirfrag_t> > subtrees;
-  map<dirfrag_t, list<dirfrag_t> > ambiguous_imports;
-  list<metareqid_t> slave_requests;
+  map<dirfrag_t, vector<dirfrag_t> > subtrees;
+  map<dirfrag_t, vector<dirfrag_t> > ambiguous_imports;
+  vector<metareqid_t> slave_requests;
 
   MMDSResolve() : Message(MSG_MDS_RESOLVE) {}
 
@@ -42,7 +42,7 @@ class MMDSResolve : public Message {
     subtrees[im].push_back(ex);
   }
 
-  void add_ambiguous_import(dirfrag_t im, const list<dirfrag_t>& m) {
+  void add_ambiguous_import(dirfrag_t im, const vector<dirfrag_t>& m) {
     ambiguous_imports[im] = m;
   }
 
index 6c5a23156283f5cc509a746a6565bc25c4da33ac..8a908116cdb6268ac15a73760885d0b3eae97929 100644 (file)
@@ -22,8 +22,8 @@
 
 class MMDSResolveAck : public Message {
  public:
-  list<metareqid_t> commit;
-  list<metareqid_t> abort;
+  vector<metareqid_t> commit;
+  vector<metareqid_t> abort;
 
   MMDSResolveAck() : Message(MSG_MDS_RESOLVEACK) {}
 
index c0ceeda863ea88cd773a5861e9b0f284fbc7ba11..531f92dd67c267103203906af282c55a5bd38ff3 100644 (file)
@@ -75,7 +75,7 @@ class MMDSSlaveRequest : public Message {
   MDSCacheObjectInfo object_info;
   
   // for authpins
-  list<MDSCacheObjectInfo> authpins;
+  vector<MDSCacheObjectInfo> authpins;
 
  public:
   // for rename prep
@@ -97,7 +97,7 @@ public:
   int get_lock_type() { return lock_type; }
   MDSCacheObjectInfo &get_object_info() { return object_info; }
 
-  list<MDSCacheObjectInfo>& get_authpins() { return authpins; }
+  vector<MDSCacheObjectInfo>& get_authpins() { return authpins; }
 
   void set_lock_type(int t) { lock_type = t; }