]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/osd_types: generalize pg_pool_t::get_flags_string() 712/head
authorSage Weil <sage@inktank.com>
Mon, 14 Oct 2013 23:54:07 +0000 (16:54 -0700)
committerSage Weil <sage@inktank.com>
Mon, 14 Oct 2013 23:54:07 +0000 (16:54 -0700)
This way the method doesn't have to be modified when new flags are added.

Signed-off-by: Sage Weil <sage@inktank.com>
src/osd/osd_types.h

index 8bf8822bffde9eb9429d1222f564eb51bb064847..8ceeb539c1afb7d8c8932e42aaa1e7b958e786f7 100644 (file)
@@ -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