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:
committed by
Chris Mason
parent
07b30a49da
commit
8f8ae8e213
@@ -155,6 +155,25 @@ static void print_extent_ref_v0(struct extent_buffer *eb, int slot)
|
|||||||
}
|
}
|
||||||
#endif
|
#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)
|
void btrfs_print_leaf(struct btrfs_root *root, struct extent_buffer *l)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@@ -301,6 +320,11 @@ void btrfs_print_leaf(struct btrfs_root *root, struct extent_buffer *l)
|
|||||||
case BTRFS_DEV_REPLACE_KEY:
|
case BTRFS_DEV_REPLACE_KEY:
|
||||||
printk(KERN_INFO "\t\tdev replace\n");
|
printk(KERN_INFO "\t\tdev replace\n");
|
||||||
break;
|
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;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user