|
@@ -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;
|
|
|
};
|
|
|
}
|
|
|
}
|