| .. | .. |
|---|
| 7 | 7 | #include "disk-io.h" |
|---|
| 8 | 8 | #include "print-tree.h" |
|---|
| 9 | 9 | |
|---|
| 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 | + |
|---|
| 10 | 48 | static void print_chunk(struct extent_buffer *eb, struct btrfs_chunk *chunk) |
|---|
| 11 | 49 | { |
|---|
| 12 | 50 | int num_stripes = btrfs_chunk_num_stripes(eb, chunk); |
|---|
| .. | .. |
|---|
| 109 | 147 | pr_cont("shared data backref parent %llu count %u\n", |
|---|
| 110 | 148 | offset, btrfs_shared_data_ref_count(eb, sref)); |
|---|
| 111 | 149 | /* |
|---|
| 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. |
|---|
| 114 | 152 | */ |
|---|
| 115 | | - if (!IS_ALIGNED(offset, eb->fs_info->nodesize)) |
|---|
| 153 | + if (!IS_ALIGNED(offset, eb->fs_info->sectorsize)) |
|---|
| 116 | 154 | pr_info( |
|---|
| 117 | 155 | "\t\t\t(parent %llu not aligned to sectorsize %u)\n", |
|---|
| 118 | 156 | offset, eb->fs_info->sectorsize); |
|---|
| .. | .. |
|---|
| 155 | 193 | #ifdef CONFIG_BTRFS_DEBUG |
|---|
| 156 | 194 | btrfs_info(eb->fs_info, |
|---|
| 157 | 195 | "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, |
|---|
| 159 | 197 | atomic_read(&eb->read_locks), |
|---|
| 160 | | - atomic_read(&eb->blocking_writers), |
|---|
| 198 | + eb->blocking_writers, |
|---|
| 161 | 199 | atomic_read(&eb->blocking_readers), |
|---|
| 162 | | - atomic_read(&eb->spinning_writers), |
|---|
| 200 | + eb->spinning_writers, |
|---|
| 163 | 201 | atomic_read(&eb->spinning_readers), |
|---|
| 164 | 202 | eb->lock_owner, current->pid); |
|---|
| 165 | 203 | #endif |
|---|
| .. | .. |
|---|
| 191 | 229 | btrfs_info(fs_info, |
|---|
| 192 | 230 | "leaf %llu gen %llu total ptrs %d free space %d owner %llu", |
|---|
| 193 | 231 | 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)); |
|---|
| 195 | 233 | print_eb_refs_lock(l); |
|---|
| 196 | 234 | for (i = 0 ; i < nr ; i++) { |
|---|
| 197 | 235 | item = btrfs_item_nr(i); |
|---|
| .. | .. |
|---|
| 268 | 306 | struct btrfs_block_group_item); |
|---|
| 269 | 307 | pr_info( |
|---|
| 270 | 308 | "\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)); |
|---|
| 274 | 312 | break; |
|---|
| 275 | 313 | case BTRFS_CHUNK_ITEM_KEY: |
|---|
| 276 | 314 | print_chunk(l, btrfs_item_ptr(l, i, |
|---|
| .. | .. |
|---|
| 319 | 357 | print_uuid_item(l, btrfs_item_ptr_offset(l, i), |
|---|
| 320 | 358 | btrfs_item_size_nr(l, i)); |
|---|
| 321 | 359 | break; |
|---|
| 322 | | - }; |
|---|
| 360 | + } |
|---|
| 323 | 361 | } |
|---|
| 324 | 362 | } |
|---|
| 325 | 363 | |
|---|