summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-10-14 16:54:07 -0700
committerSage Weil <sage@inktank.com>2013-10-14 16:54:07 -0700
commitdd33c9802f3438391c57e18854debd9d4203f002 (patch)
treeeba179035c4b6370488df23b54216ae4aff03442
parent70250e84561615236405d31a5834960c68424a1f (diff)
downloadceph-dd33c9802f3438391c57e18854debd9d4203f002.tar.gz
osd/osd_types: generalize pg_pool_t::get_flags_string()
This way the method doesn't have to be modified when new flags are added. Signed-off-by: Sage Weil <sage@inktank.com>
-rw-r--r--src/osd/osd_types.h17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h
index 8bf8822bffd..8ceeb539c1a 100644
--- a/src/osd/osd_types.h
+++ b/src/osd/osd_types.h
@@ -732,17 +732,20 @@ struct pg_pool_t {
default: return "???";
}
}
- string get_flags_string() const {
+ static string get_flags_string(uint64_t f) {
string s;
- if (flags & FLAG_HASHPSPOOL)
- s += get_flag_name(FLAG_HASHPSPOOL);
- if (flags & FLAG_FULL) {
- if (s.length())
- s += ",";
- s += get_flag_name(FLAG_FULL);
+ for (unsigned n=0; f && n<64; ++n) {
+ if (f & (1ull << n)) {
+ if (s.length())
+ s += ",";
+ s += get_flag_name(1ull << n);
+ }
}
return s;
}
+ string get_flags_string() const {
+ return get_flags_string(flags);
+ }
typedef enum {
CACHEMODE_NONE = 0, ///< no caching