From: Sage Weil Date: Fri, 7 Aug 2015 20:47:08 +0000 (-0400) Subject: osd/osd_types: add pg_missing_t::resort() method X-Git-Tag: v9.1.0~346^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=fc61fd7969824ebc2aecdcefe0697ad03fd58de3;p=ceph.git osd/osd_types: add pg_missing_t::resort() method Set/change sort order as needed. Signed-off-by: Sage Weil --- diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc index 5bd4669b2b04..24966437585b 100644 --- a/src/osd/osd_types.cc +++ b/src/osd/osd_types.cc @@ -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 tmp; + tmp.swap(missing); + missing = map( + hobject_t::ComparatorWithDefault(sort_bitwise)); + missing.insert(tmp.begin(), tmp.end()); + } +} + void pg_missing_t::encode(bufferlist &bl) const { ENCODE_START(3, 2, bl); diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h index 2e09e424fea4..afaca3523c7d 100644 --- a/src/osd/osd_types.h +++ b/src/osd/osd_types.h @@ -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;