Chris Mason
734603d927
Use better chunk sizes for small and large filesystems
2008-04-18 10:31:42 -04:00
Chris Mason
588bb9dfff
Add support for filesystem labels via mkfs.btrfs -L
2008-04-18 10:31:42 -04:00
Chris Mason
1f81c1b6fc
Add raid10 support
2008-04-16 11:14:21 -04:00
Chris Mason
951fd7371c
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.
2008-04-15 15:42:08 -04:00
Chris Mason
4f9e7f0bae
Use leafsize and nodesize == pagesize for now
2008-04-09 19:49:01 -04:00
Chris Mason
a37e1e7204
Recow all roots at the end of mkfs
...
The mkfs code bootstraps the filesystem on a single device. Once
the raid block groups are setup, it needs to recow all of the blocks so
that each tree is properly allocated.
2008-04-04 15:42:17 -04:00
Chris Mason
a57a255e44
Add mkfs options for data and metadata mirroring modes
...
mkfs.btrfs --data {raid0,raid1,single}
mkfs.btrfs --metadata {raid0,raid1,single}
In single mode, no extra duplication or striping is done.
In raid0 mode, blocks are spread across all of the available devices
In raid1 mode, blocks are mirrored across two devices.
For metadata, if raid1 is used and there is only one device, the
metadata is duplicated on that single spindle.
The defaults are raid0 for data and raid1 for metadata
2008-04-03 16:35:48 -04:00
Chris Mason
c7be130df7
Add support for single single duplication of metadata
2008-04-03 16:35:48 -04:00
Chris Mason
a6de0bd778
Add mirroring support across multiple drives
2008-04-03 16:35:48 -04:00
Chris Mason
6a87b4c00a
Use getopt_long and introduce long mkfs options. -s now means --sectorsize
2008-04-01 11:08:13 -04:00
Goldwyn Rodrigues
c2c5e3e7e5
check if partition is mounted before mkfs
...
This saves from the blunder of formatting a live mounted filesystem.
This can be extended to get the mount flags of the filesystem
mounted.
Signed-off-by: Goldwyn Rodrigues <rgoldwyn@gmail.com>
2008-04-01 10:36:46 -04:00
Chris Mason
0dcfa3b827
Walk all block devices looking for btrfs
2008-03-24 15:05:44 -04:00
Chris Mason
26afd0f31d
ioctls to scan for btrfs filesystems
2008-03-24 15:04:49 -04:00
Chris Mason
510be29677
Add support for multiple devices per filesystem
2008-03-24 15:03:18 -04:00
Chris Mason
0c6513b1d1
mkfs: Zero 2MB at the start and end of the device
...
But, on sparc, don't zero the first 1k.
2008-02-15 11:19:26 -05:00
Yan
7777e63b42
Update btrfs-progs to match kernel sources
2008-01-04 10:38:22 -05:00
Chris Mason
7e03dadf20
Add online resizing ioctls
...
btrfsctl -r size mount_point
2007-12-21 16:25:35 -05:00
Chris Mason
29bf1724b1
Reorder extent back refs to differentiate file data from btree blocks
2007-12-13 11:12:45 -05:00
Chris Mason
140d96a562
Create macros to generation set/get funcs for on disk structures
2007-12-12 14:39:46 -05:00
Chris Mason
4122e65cb2
Add back pointers from extents to the file or btree referencing them
2007-12-11 09:21:42 -05:00
Chris Mason
73372dcf8f
Add generation numbers to block pointers
2007-12-09 13:46:24 -05:00
Chris Mason
1883251686
Add simple stripe size parameter
2007-11-30 11:30:24 -05:00
Chris Mason
678af9b3a4
Remove the last radix tree (block_group_cache)
2007-10-17 09:58:56 -04:00
Chris Mason
38f79f9077
Switch to byte granular allocations
2007-10-15 16:25:14 -04:00
Chris Mason
f12d799856
Allow large blocks
2007-10-15 16:24:39 -04:00
Josef Bacik
ffaff17911
btrfs-progs support for root block accounting
...
This adds support for keeping track of the number of blocks used by
root_item's. This makes it so that mkfs lays down the "default" subvol with
the correct block accounting in place. Thank you,
2007-08-29 15:56:44 -04:00
Chris Mason
0528b69c15
add defrag ioctl
2007-08-07 16:15:59 -04:00
Chris Mason
65a545ff84
i386 fixes from axboe
2007-06-12 11:39:09 -04:00
Chris Mason
d9f1317c7d
add GPLv2
2007-06-12 09:07:11 -04:00
Chris Mason
38ef945266
printf cleanups
2007-06-12 08:08:04 -04:00
Chris Mason
b53a236c3e
remove device tree
2007-06-09 09:22:37 -04:00
Chris Mason
84e9d08a4b
endian fixes, makefile fixes
2007-06-07 22:12:21 -04:00
Chris Mason
9b25940b9d
data vs metadata flag for block groups
2007-05-30 10:21:32 -04:00
Chris Mason
5856b7e124
start of block group code
2007-04-26 16:46:06 -04:00
Chris Mason
10d06538f1
get rid of the extent_item type field
2007-04-24 12:09:01 -04:00
Chris Mason
885f275a68
fsck checks against extent map, small fixes
2007-04-23 17:00:26 -04:00
Chris Mason
2f2264fc2d
add owner and type fields to the extents aand block headers
2007-04-20 20:23:29 -04:00
Chris Mason
3eaaf935e5
add some support for multiple devices to progs
2007-04-12 12:14:47 -04:00
Chris Mason
d23ea8706c
early support for multiple devices
2007-04-11 13:57:55 -04:00
Chris Mason
6d9ce71c81
use a different inode number for subvols than the root root dir
2007-04-11 08:58:53 -04:00
Chris Mason
e52d2e2fa1
drop owner and parentid
2007-04-10 12:36:58 -04:00
Chris Mason
1b4ca380ed
drop the inode map tree
2007-04-10 12:13:29 -04:00
Chris Mason
86c2d78728
groundwork for subvolume and snapshot roots
2007-04-09 10:42:55 -04:00
Chris Mason
8accdae27a
start of support for subvolumes
2007-04-06 15:39:12 -04:00
Chris Mason
d785b7d058
uuids
2007-04-05 14:29:12 -04:00
Chris Mason
1330edb0bc
sync up with kernel sources
2007-04-02 14:18:17 -04:00
Chris Mason
132db51b1f
generations on headers
2007-03-26 11:24:42 -04:00
Chris Mason
9fb549a6c1
mkfs and dir-test fixes
2007-03-22 16:01:01 -04:00
Chris Mason
8a2c8123c5
create a root dir in mkfs
2007-03-21 11:13:29 -04:00
Chris Mason
b55672a2a1
Better block record keeping, real mkfs
2007-03-20 20:35:03 -04:00
Chris Mason
099f1ae6e4
Add inode map, and the start of file extent items
2007-03-20 14:38:32 -04:00
Chris Mason
da99898c78
Use a chunk of the key flags to record the item type.
...
Add (untested and simple) directory item code
Fix comp_keys to use the new key ordering
Add btrfs_insert_empty_item
2007-03-15 12:56:47 -04:00
Chris Mason
7a0a809b4c
variable block size support
2007-03-14 14:14:43 -04:00
Chris Mason
d9c9960f8d
Change the super to point to a tree of trees to enable persistent snapshots
2007-03-13 16:47:54 -04:00
Chris Mason
aa60202f13
rename funcs and structs to btrfs
2007-03-13 10:46:10 -04:00
Chris Mason
56042e6ad4
struct extent_item endian
2007-03-13 09:49:06 -04:00
Chris Mason
f6a88938c6
struct item endian fixes
2007-03-12 20:12:07 -04:00
Chris Mason
b2e2afd7b4
struct key endian fixes
2007-03-12 16:22:34 -04:00
Chris Mason
8e17fab249
get/set for struct header fields
2007-03-12 12:01:18 -04:00
Chris Mason
c6c63c3e74
Block sized tree extents and extent deletion
2007-02-23 08:38:36 -05:00
Chris Mason
72777fbe29
extent fixes
2007-02-21 17:04:57 -05:00
Chris Mason
828ba34028
add mkfs.c
2007-02-20 16:41:09 -05:00