+/* Caller should ensure sizeof(*ret)>=21 "DATA|METADATA|RAID10" */
+static void bg_flags_to_str(u64 flags, char *ret)
+{
+ int empty = 1;
+
+ if (flags & BTRFS_BLOCK_GROUP_DATA) {
+ empty = 0;
+ strcpy(ret, "DATA");
+ }
+ if (flags & BTRFS_BLOCK_GROUP_METADATA) {
+ if (!empty)
+ strcat(ret, "|");
+ strcat(ret, "METADATA");
+ }
+ if (flags & BTRFS_BLOCK_GROUP_SYSTEM) {
+ if (!empty)
+ strcat(ret, "|");
+ strcat(ret, "SYSTEM");
+ }
+ switch (flags & BTRFS_BLOCK_GROUP_PROFILE_MASK) {
+ case BTRFS_BLOCK_GROUP_RAID0:
+ strcat(ret, "|RAID0");
+ break;
+ case BTRFS_BLOCK_GROUP_RAID1:
+ strcat(ret, "|RAID1");
+ break;
+ case BTRFS_BLOCK_GROUP_DUP:
+ strcat(ret, "|DUP");
+ break;
+ case BTRFS_BLOCK_GROUP_RAID10:
+ strcat(ret, "|RAID10");
+ break;
+ case BTRFS_BLOCK_GROUP_RAID5:
+ strcat(ret, "|RAID5");
+ break;
+ case BTRFS_BLOCK_GROUP_RAID6:
+ strcat(ret, "|RAID6");
+ break;
+ default:
+ break;
+ }
+}
+
+/* Caller should ensure sizeof(*ret)>= 26 "OFF|SCANNING|INCONSISTENT" */
+static void qgroup_flags_to_str(u64 flags, char *ret)
+{
+ if (flags & BTRFS_QGROUP_STATUS_FLAG_ON)
+ strcpy(ret, "ON");
+ else
+ strcpy(ret, "OFF");
+
+ if (flags & BTRFS_QGROUP_STATUS_FLAG_RESCAN)
+ strcat(ret, "|SCANNING");
+ if (flags & BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT)
+ strcat(ret, "|INCONSISTENT");
+}
+
+void print_chunk(struct extent_buffer *eb, struct btrfs_chunk *chunk)