btrfs: add helper to describe block group flags
[sfrench/cifs-2.6.git] / fs / btrfs / relocation.c
index 5471eea1c0fd7ebf97b43f7f692f76ef12756553..35bfe014712ab197815272d4533efbdd1100803d 100644 (file)
@@ -4185,37 +4185,13 @@ static struct reloc_control *alloc_reloc_control(void)
 static void describe_relocation(struct btrfs_fs_info *fs_info,
                                struct btrfs_block_group_cache *block_group)
 {
-       char buf[128];          /* prefixed by a '|' that'll be dropped */
-       u64 flags = block_group->flags;
+       char buf[128] = {'\0'};
 
-       /* Shouldn't happen */
-       if (!flags) {
-               strcpy(buf, "|NONE");
-       } else {
-               char *bp = buf;
-
-#define DESCRIBE_FLAG(f, d) \
-               if (flags & BTRFS_BLOCK_GROUP_##f) { \
-                       bp += snprintf(bp, buf - bp + sizeof(buf), "|%s", d); \
-                       flags &= ~BTRFS_BLOCK_GROUP_##f; \
-               }
-               DESCRIBE_FLAG(DATA,     "data");
-               DESCRIBE_FLAG(SYSTEM,   "system");
-               DESCRIBE_FLAG(METADATA, "metadata");
-               DESCRIBE_FLAG(RAID0,    "raid0");
-               DESCRIBE_FLAG(RAID1,    "raid1");
-               DESCRIBE_FLAG(DUP,      "dup");
-               DESCRIBE_FLAG(RAID10,   "raid10");
-               DESCRIBE_FLAG(RAID5,    "raid5");
-               DESCRIBE_FLAG(RAID6,    "raid6");
-               if (flags)
-                       snprintf(bp, buf - bp + sizeof(buf), "|0x%llx", flags);
-#undef DESCRIBE_FLAG
-       }
+       btrfs_describe_block_groups(block_group->flags, buf, sizeof(buf));
 
        btrfs_info(fs_info,
                   "relocating block group %llu flags %s",
-                  block_group->key.objectid, buf + 1);
+                  block_group->key.objectid, buf);
 }
 
 /*