mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 19:00:25 +00:00
Btrfs: support printing UUID tree elements
This commit adds support to print UUID tree elements to print-tree.c. Signed-off-by: Stefan Behrens <sbehrens@giantdisaster.de> Signed-off-by: Josef Bacik <jbacik@fusionio.com> Signed-off-by: Chris Mason <chris.mason@fusionio.com>
This commit is contained in:
parent
07b30a49da
commit
8f8ae8e213
1 changed files with 24 additions and 0 deletions
|
@ -155,6 +155,25 @@ static void print_extent_ref_v0(struct extent_buffer *eb, int slot)
|
|||
}
|
||||
#endif
|
||||
|
||||
static void print_uuid_item(struct extent_buffer *l, unsigned long offset,
|
||||
u32 item_size)
|
||||
{
|
||||
if (!IS_ALIGNED(item_size, sizeof(u64))) {
|
||||
pr_warn("btrfs: uuid item with illegal size %lu!\n",
|
||||
(unsigned long)item_size);
|
||||
return;
|
||||
}
|
||||
while (item_size) {
|
||||
__le64 subvol_id;
|
||||
|
||||
read_extent_buffer(l, &subvol_id, offset, sizeof(subvol_id));
|
||||
printk(KERN_INFO "\t\tsubvol_id %llu\n",
|
||||
(unsigned long long)le64_to_cpu(subvol_id));
|
||||
item_size -= sizeof(u64);
|
||||
offset += sizeof(u64);
|
||||
}
|
||||
}
|
||||
|
||||
void btrfs_print_leaf(struct btrfs_root *root, struct extent_buffer *l)
|
||||
{
|
||||
int i;
|
||||
|
@ -301,6 +320,11 @@ void btrfs_print_leaf(struct btrfs_root *root, struct extent_buffer *l)
|
|||
case BTRFS_DEV_REPLACE_KEY:
|
||||
printk(KERN_INFO "\t\tdev replace\n");
|
||||
break;
|
||||
case BTRFS_UUID_KEY_SUBVOL:
|
||||
case BTRFS_UUID_KEY_RECEIVED_SUBVOL:
|
||||
print_uuid_item(l, btrfs_item_ptr_offset(l, i),
|
||||
btrfs_item_size_nr(l, i));
|
||||
break;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue