From 5301d0808add89816f67433b31e2383eb20745dd Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sat, 7 Nov 2009 21:06:27 -0800 Subject: [PATCH] osd: make pgids sort on (pool, preferred, ps) This makes pg dump output easier to read, mainly. --- src/osd/osd_types.h | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h index f7edcb888f9f8..dfa812fe01a72 100644 --- a/src/osd/osd_types.h +++ b/src/osd/osd_types.h @@ -158,22 +158,34 @@ struct pg_t { } __attribute__ ((packed)); inline bool operator<(const pg_t& l, const pg_t& r) { - return memcmp(&l, &r, sizeof(l)) < 0; + return l.pool() < r.pool() || + (l.pool() == r.pool() && (l.preferred() < r.preferred() || + (l.preferred() == r.preferred() && (l.ps() < r.ps())))); } inline bool operator<=(const pg_t& l, const pg_t& r) { - return memcmp(&l, &r, sizeof(l)) <= 0; + return l.pool() < r.pool() || + (l.pool() == r.pool() && (l.preferred() < r.preferred() || + (l.preferred() == r.preferred() && (l.ps() <= r.ps())))); } inline bool operator==(const pg_t& l, const pg_t& r) { - return memcmp(&l, &r, sizeof(l)) == 0; + return l.pool() == r.pool() && + l.preferred() == r.preferred() && + l.ps() == r.ps(); } inline bool operator!=(const pg_t& l, const pg_t& r) { - return memcmp(&l, &r, sizeof(l)) != 0; + return l.pool() != r.pool() || + l.preferred() != r.preferred() || + l.ps() != r.ps(); } inline bool operator>(const pg_t& l, const pg_t& r) { - return memcmp(&l, &r, sizeof(l)) > 0; + return l.pool() > r.pool() || + (l.pool() == r.pool() && (l.preferred() > r.preferred() || + (l.preferred() == r.preferred() && (l.ps() > r.ps())))); } inline bool operator>=(const pg_t& l, const pg_t& r) { - return memcmp(&l, &r, sizeof(l)) >= 0; + return l.pool() > r.pool() || + (l.pool() == r.pool() && (l.preferred() > r.preferred() || + (l.preferred() == r.preferred() && (l.ps() >= r.ps())))); } -- 2.39.5