hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/fs/btrfs/print-tree.c
....@@ -7,6 +7,44 @@
77 #include "disk-io.h"
88 #include "print-tree.h"
99
10
+struct root_name_map {
11
+ u64 id;
12
+ char name[16];
13
+};
14
+
15
+static const struct root_name_map root_map[] = {
16
+ { BTRFS_ROOT_TREE_OBJECTID, "ROOT_TREE" },
17
+ { BTRFS_EXTENT_TREE_OBJECTID, "EXTENT_TREE" },
18
+ { BTRFS_CHUNK_TREE_OBJECTID, "CHUNK_TREE" },
19
+ { BTRFS_DEV_TREE_OBJECTID, "DEV_TREE" },
20
+ { BTRFS_FS_TREE_OBJECTID, "FS_TREE" },
21
+ { BTRFS_CSUM_TREE_OBJECTID, "CSUM_TREE" },
22
+ { BTRFS_TREE_LOG_OBJECTID, "TREE_LOG" },
23
+ { BTRFS_QUOTA_TREE_OBJECTID, "QUOTA_TREE" },
24
+ { BTRFS_UUID_TREE_OBJECTID, "UUID_TREE" },
25
+ { BTRFS_FREE_SPACE_TREE_OBJECTID, "FREE_SPACE_TREE" },
26
+ { BTRFS_DATA_RELOC_TREE_OBJECTID, "DATA_RELOC_TREE" },
27
+};
28
+
29
+const char *btrfs_root_name(const struct btrfs_key *key, char *buf)
30
+{
31
+ int i;
32
+
33
+ if (key->objectid == BTRFS_TREE_RELOC_OBJECTID) {
34
+ snprintf(buf, BTRFS_ROOT_NAME_BUF_LEN,
35
+ "TREE_RELOC offset=%llu", key->offset);
36
+ return buf;
37
+ }
38
+
39
+ for (i = 0; i < ARRAY_SIZE(root_map); i++) {
40
+ if (root_map[i].id == key->objectid)
41
+ return root_map[i].name;
42
+ }
43
+
44
+ snprintf(buf, BTRFS_ROOT_NAME_BUF_LEN, "%llu", key->objectid);
45
+ return buf;
46
+}
47
+
1048 static void print_chunk(struct extent_buffer *eb, struct btrfs_chunk *chunk)
1149 {
1250 int num_stripes = btrfs_chunk_num_stripes(eb, chunk);
....@@ -109,10 +147,10 @@
109147 pr_cont("shared data backref parent %llu count %u\n",
110148 offset, btrfs_shared_data_ref_count(eb, sref));
111149 /*
112
- * offset is supposed to be a tree block which
113
- * must be aligned to nodesize.
150
+ * Offset is supposed to be a tree block which must be
151
+ * aligned to sectorsize.
114152 */
115
- if (!IS_ALIGNED(offset, eb->fs_info->nodesize))
153
+ if (!IS_ALIGNED(offset, eb->fs_info->sectorsize))
116154 pr_info(
117155 "\t\t\t(parent %llu not aligned to sectorsize %u)\n",
118156 offset, eb->fs_info->sectorsize);
....@@ -155,11 +193,11 @@
155193 #ifdef CONFIG_BTRFS_DEBUG
156194 btrfs_info(eb->fs_info,
157195 "refs %u lock (w:%d r:%d bw:%d br:%d sw:%d sr:%d) lock_owner %u current %u",
158
- atomic_read(&eb->refs), atomic_read(&eb->write_locks),
196
+ atomic_read(&eb->refs), eb->write_locks,
159197 atomic_read(&eb->read_locks),
160
- atomic_read(&eb->blocking_writers),
198
+ eb->blocking_writers,
161199 atomic_read(&eb->blocking_readers),
162
- atomic_read(&eb->spinning_writers),
200
+ eb->spinning_writers,
163201 atomic_read(&eb->spinning_readers),
164202 eb->lock_owner, current->pid);
165203 #endif
....@@ -191,7 +229,7 @@
191229 btrfs_info(fs_info,
192230 "leaf %llu gen %llu total ptrs %d free space %d owner %llu",
193231 btrfs_header_bytenr(l), btrfs_header_generation(l), nr,
194
- btrfs_leaf_free_space(fs_info, l), btrfs_header_owner(l));
232
+ btrfs_leaf_free_space(l), btrfs_header_owner(l));
195233 print_eb_refs_lock(l);
196234 for (i = 0 ; i < nr ; i++) {
197235 item = btrfs_item_nr(i);
....@@ -268,9 +306,9 @@
268306 struct btrfs_block_group_item);
269307 pr_info(
270308 "\t\tblock group used %llu chunk_objectid %llu flags %llu\n",
271
- btrfs_disk_block_group_used(l, bi),
272
- btrfs_disk_block_group_chunk_objectid(l, bi),
273
- btrfs_disk_block_group_flags(l, bi));
309
+ btrfs_block_group_used(l, bi),
310
+ btrfs_block_group_chunk_objectid(l, bi),
311
+ btrfs_block_group_flags(l, bi));
274312 break;
275313 case BTRFS_CHUNK_ITEM_KEY:
276314 print_chunk(l, btrfs_item_ptr(l, i,
....@@ -319,7 +357,7 @@
319357 print_uuid_item(l, btrfs_item_ptr_offset(l, i),
320358 btrfs_item_size_nr(l, i));
321359 break;
322
- };
360
+ }
323361 }
324362 }
325363