diff options
author | Sage Weil <sage@inktank.com> | 2013-10-14 16:54:07 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-10-14 16:54:07 -0700 |
commit | dd33c9802f3438391c57e18854debd9d4203f002 (patch) | |
tree | eba179035c4b6370488df23b54216ae4aff03442 | |
parent | 70250e84561615236405d31a5834960c68424a1f (diff) | |
download | ceph-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.h | 17 |
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 |