Chris Mason
006a58a25f
Btrfs: Compile warning fixup in volume.c
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:02 -04:00
Chris Mason
2fff734faf
Btrfs: Tune stripe selection for raid1 and raid10
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:02 -04:00
Chris Mason
a236aed14c
Btrfs: Deal with failed writes in mirrored configurations
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:02 -04:00
Chris Mason
4235298e4f
Btrfs: Drop some verbose printks
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:02 -04:00
Chris Mason
ec44a35cbe
Btrfs: Add balance ioctl to restripe the chunks
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:02 -04:00
Chris Mason
788f20eb5a
Btrfs: Add new ioctl to add devices
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:02 -04:00
Chris Mason
8f18cf1339
Btrfs: Make the resizer work based on shrinking and growing devices
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:02 -04:00
Chris Mason
84eed90fac
Btrfs: Add failure handling for read_sys_array
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:02 -04:00
Chris Mason
e1c4b7451e
Fix btrfs_get_extent and get_block corner cases, and disable O_DIRECT reads
...
The generic O_DIRECT code assumes all the bios have the same bdev,
which isn't true for multi-device btrfs.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:02 -04:00
Chris Mason
b30757178d
Btrfs: Add a special device list for chunk allocations
...
This allows other code that needs to walk every device in the FS to do so
without locking against allocations.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:02 -04:00
Chris Mason
3c12ac7205
Btrfs: Simplify device selection for mirrored reads
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:02 -04:00
Chris Mason
f2d8d74d78
Btrfs: Make an unplug function that doesn't unplug every spindle
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:02 -04:00
Chris Mason
ad5bd91ece
Btrfs: Add 1MB to the min_free in alloc_chunk
...
This properly reflects the first 1MB we skip at the start of the device
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:02 -04:00
Chris Mason
a40a90a042
Btrfs: Fix chunk allocation when some devices don't have enough room for stripes
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:02 -04:00
Chris Mason
9b3f68b906
Btrfs: Calculate appropriate chunk sizes for both small and large filesystems
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:02 -04:00
Chris Mason
7ae9c09d8f
Btrfs: Add support for labels in the super block
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:02 -04:00
Chris Mason
a443755f1c
Btrfs: Check device uuids along with devids
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:02 -04:00
Chris Mason
7bf3b490df
Btrfs: Avoid 64 bit div for RAID10
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:02 -04:00
Chris Mason
3b951516ed
Btrfs: Use the extent map cache to find the logical disk block during data retries
...
The data read retry code needs to find the logical disk block before it
can resubmit new bios. But, finding this block isn't allowed to take
the fs_mutex because that will deadlock with a number of different callers.
This changes the retry code to use the extent map cache instead, but
that requires the extent map cache to have the extent we're looking for.
This is a problem because btrfs_drop_extent_cache just drops the entire
extent instead of the little tiny part it is invalidating.
The bulk of the code in this patch changes btrfs_drop_extent_cache to
invalidate only a portion of the extent cache, and changes btrfs_get_extent
to deal with the results.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
321aecc656
Btrfs: Add RAID10 support
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
e17cade25f
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>
2008-09-25 11:04:01 -04:00
Chris Mason
b248a41529
Btrfs: A few updates for 2.6.18 and versions older than 2.6.25
...
This includes fixing a missing spinlock init call that caused oops on mount
for most kernels other than 2.6.25.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Miguel
73f61b2a64
Btrfs: bio_endio support for linux 2.6.23 and older.
...
bio_endio() changed prototype on linux 2.6.24, support older kernels
using the older prototype.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
f29844623d
Btrfs: Write out all super blocks on commit, and bring back proper barrier support
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
f188591e98
Btrfs: Retry metadata reads in the face of checksum failures
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
cea9e4452e
Change btrfs_map_block to return a structure with mappings for all stripes
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
611f0e00a2
Btrfs: Add support for duplicate blocks on a single spindle
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
8790d502e4
Btrfs: Add support for mirroring across drives
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Yan
e58ca0203d
Fix btrfs_fill_super to return -EINVAL when no FS found
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
593060d756
Btrfs: Implement raid0 when multiple devices are present
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
8a4b83cc8b
Btrfs: Add support for device scanning and detection ioctls
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
239b14b32d
Btrfs: Bring back mount -o ssd optimizations
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
0d81ba5dbe
Btrfs: Move device information into the super block so it can be scanned
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
6324fbf334
Btrfs: Dynamic chunk and block group allocation
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
0b86a832a1
Btrfs: Add support for multiple devices per filesystem
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:00 -04:00