]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/osd_types: add pg_missing_t::resort() method
authorSage Weil <sage@redhat.com>
Fri, 7 Aug 2015 20:47:08 +0000 (16:47 -0400)
committerSage Weil <sage@redhat.com>
Mon, 17 Aug 2015 13:50:13 +0000 (09:50 -0400)
Set/change sort order as needed.

Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/osd_types.cc
src/osd/osd_types.h

index 5bd4669b2b041f48a3d9de59d7e1952a3a9cc6ea..24966437585b0aec559a1deda0ec652a4ba4222f 100644 (file)
@@ -3374,6 +3374,17 @@ ostream& pg_log_t::print(ostream& out) const
 
 // -- pg_missing_t --
 
+void pg_missing_t::resort(bool sort_bitwise)
+{
+  if (missing.key_comp().bitwise != sort_bitwise) {
+    map<hobject_t, item, hobject_t::ComparatorWithDefault> tmp;
+    tmp.swap(missing);
+    missing = map<hobject_t, item, hobject_t::ComparatorWithDefault>(
+      hobject_t::ComparatorWithDefault(sort_bitwise));
+    missing.insert(tmp.begin(), tmp.end());
+  }
+}
+
 void pg_missing_t::encode(bufferlist &bl) const
 {
   ENCODE_START(3, 2, bl);
index 2e09e424fea43e426ac8697e5efa220aae60df41..afaca3523c7d02c355c439af49ba657bbee629b3 100644 (file)
@@ -2517,6 +2517,8 @@ struct pg_missing_t {
     rmissing.clear();
   }
 
+  void resort(bool sort_bitwise);
+
   void encode(bufferlist &bl) const;
   void decode(bufferlist::iterator &bl, int64_t pool = -1);
   void dump(Formatter *f) const;