diff options
author | Qu Wenruo <wqu@suse.com> | 2017-10-31 14:07:58 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2017-11-14 15:59:01 +0100 |
commit | 8c36786c8198bb7e440723240d9775d868d8409c (patch) | |
tree | 96074c37614459da304cfb36a2871eb344482bfb | |
parent | aaf2dac5ef375e76bfbcac3d6ac27de0b0f62821 (diff) |
btrfs-progs: print-tree: Print offset as tree objectid for ROOT_ITEM
For cases like reloc trees and subvolume trees, their key offset is the
tree id. The key will be printed as:
(TREE_RELOC ROOT_ITEM 18446744073709551607)
The negative number is long and even guys with real engineer brains
can't easily get the meaning.
This patch will change the output format to:
(TREE_RELOC ROOT_ITEM DATA_RELOC_TREE)
While for special offset value like 0 or (u64)-1, it's still shown as
is.
Signed-off-by: Qu Wenruo <wqu@suse.com>
[ reword comment ]
Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r-- | print-tree.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/print-tree.c b/print-tree.c index 3c585e31..cee30bfb 100644 --- a/print-tree.c +++ b/print-tree.c @@ -794,6 +794,17 @@ void btrfs_print_key(struct btrfs_disk_key *disk_key) case BTRFS_UUID_KEY_RECEIVED_SUBVOL: printf(" 0x%016llx)", (unsigned long long)offset); break; + + /* + * Key offsets of ROOT_ITEM point to tree root, print them in human + * readable format. Especially useful for trees like data/tree reloc + * tree, whose tree id can be negative. + */ + case BTRFS_ROOT_ITEM_KEY: + printf(" "); + print_objectid(stdout, offset, type); + printf(")"); + break; default: if (offset == (u64)-1) printf(" -1)"); |