From 70250e84561615236405d31a5834960c68424a1f Mon Sep 17 00:00:00 2001 From: Joao Eduardo Luis Date: Fri, 11 Oct 2013 17:50:16 +0100 Subject: osd: osd_types: Output pool's flag names during dump Signed-off-by: Joao Eduardo Luis --- src/osd/osd_types.cc | 3 ++- src/osd/osd_types.h | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc index 27f7b171677..1a9dde665cf 100644 --- a/src/osd/osd_types.cc +++ b/src/osd/osd_types.cc @@ -655,6 +655,7 @@ void pool_snap_info_t::generate_test_instances(list& o) void pg_pool_t::dump(Formatter *f) const { f->dump_unsigned("flags", get_flags()); + f->dump_string("flags_names", get_flags_string()); f->dump_int("type", get_type()); f->dump_int("size", get_size()); f->dump_int("min_size", get_min_size()); @@ -1054,7 +1055,7 @@ ostream& operator<<(ostream& out, const pg_pool_t& p) << " last_change " << p.get_last_change() << " owner " << p.get_auid(); if (p.flags) - out << " flags " << p.flags; + out << " flags " << p.get_flags_string(); if (p.crash_replay_interval) out << " crash_replay_interval " << p.crash_replay_interval; if (p.quota_max_bytes) diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h index a54fc65f375..8bf8822bffd 100644 --- a/src/osd/osd_types.h +++ b/src/osd/osd_types.h @@ -725,6 +725,25 @@ struct pg_pool_t { FLAG_FULL = 2, // pool is full }; + static const char *get_flag_name(int f) { + switch (f) { + case FLAG_HASHPSPOOL: return "hashpspool"; + case FLAG_FULL: return "full"; + default: return "???"; + } + } + string get_flags_string() const { + 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); + } + return s; + } + typedef enum { CACHEMODE_NONE = 0, ///< no caching CACHEMODE_WRITEBACK = 1, ///< write to cache, flush later -- cgit v1.2.1