Btrfs: Add chunk uuids and update multi-device back references
authorChris Mason <chris.mason@oracle.com>
Tue, 15 Apr 2008 19:41:47 +0000 (15:41 -0400)
committerChris Mason <chris.mason@oracle.com>
Thu, 25 Sep 2008 15:04:01 +0000 (11:04 -0400)
commite17cade25ff8074101d653557a78df09c16ca276
treec4bddc201bf77c9a460e726a5cdd5ca1add8c256
parentb248a4152956cbae1b23f4c70ef5b51d6ea2ecfb
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>
fs/btrfs/ctree.c
fs/btrfs/ctree.h
fs/btrfs/disk-io.c
fs/btrfs/extent-tree.c
fs/btrfs/print-tree.c
fs/btrfs/volumes.c
fs/btrfs/volumes.h