From: Sage Weil Date: Mon, 14 Oct 2013 23:54:07 +0000 (-0700) Subject: osd/osd_types: generalize pg_pool_t::get_flags_string() X-Git-Tag: v0.72-rc1~63^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=dd33c9802f3438391c57e18854debd9d4203f002;p=ceph.git 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 --- 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