aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/volumes.h
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2008-04-15 15:41:47 -0400
committerChris Mason <chris.mason@oracle.com>2008-09-25 11:04:01 -0400
commite17cade25ff8074101d653557a78df09c16ca276 (patch)
treec4bddc201bf77c9a460e726a5cdd5ca1add8c256 /fs/btrfs/volumes.h
parentb248a4152956cbae1b23f4c70ef5b51d6ea2ecfb (diff)
Btrfs: Add chunk uuids and update multi-device back references
Block headers now store the chunk tree uuid Chunk items records the device uuid for each stripes Device extent items record better back refs to the chunk tree Block groups record better back refs to the chunk tree The chunk tree format has also changed. The objectid of BTRFS_CHUNK_ITEM_KEY used to be the logical offset of the chunk. Now it is a chunk tree id, with the logical offset being stored in the offset field of the key. This allows a single chunk tree to record multiple logical address spaces, upping the number of bytes indexed by a chunk tree from 2^64 to 2^128. Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/volumes.h')
-rw-r--r--fs/btrfs/volumes.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/btrfs/volumes.h b/fs/btrfs/volumes.h
index 89548837a1cc..f9cae3072171 100644
--- a/fs/btrfs/volumes.h
+++ b/fs/btrfs/volumes.h
@@ -57,7 +57,7 @@ struct btrfs_device {
57 u64 type; 57 u64 type;
58 58
59 /* physical drive uuid (or lvm uuid) */ 59 /* physical drive uuid (or lvm uuid) */
60 u8 uuid[BTRFS_DEV_UUID_SIZE]; 60 u8 uuid[BTRFS_UUID_SIZE];
61}; 61};
62 62
63struct btrfs_fs_devices { 63struct btrfs_fs_devices {
@@ -93,7 +93,9 @@ struct btrfs_multi_bio {
93 93
94int btrfs_alloc_dev_extent(struct btrfs_trans_handle *trans, 94int btrfs_alloc_dev_extent(struct btrfs_trans_handle *trans,
95 struct btrfs_device *device, 95 struct btrfs_device *device,
96 u64 owner, u64 num_bytes, u64 *start); 96 u64 chunk_tree, u64 chunk_objectid,
97 u64 chunk_offset,
98 u64 num_bytes, u64 *start);
97int btrfs_map_block(struct btrfs_mapping_tree *map_tree, int rw, 99int btrfs_map_block(struct btrfs_mapping_tree *map_tree, int rw,
98 u64 logical, u64 *length, 100 u64 logical, u64 *length,
99 struct btrfs_multi_bio **multi_ret, int mirror_num); 101 struct btrfs_multi_bio **multi_ret, int mirror_num);