summaryrefslogtreecommitdiff
path: root/extent-tree.c
Commit message (Collapse)AuthorAge
* Speed improvement and bug fixes for ext3 converterYan Zheng2008-04-24
| | | | | | | | This patch improves converter's allocator and fixes a bug in data relocation function. The new allocator caches free blocks as Btrfs's default allocator. In testing here, the user CPU time reduced to half of the original when checksum and small file packing was disabled. This patch also enlarges the size of block groups created by the converter.
* Fix balance_level to free the middle block if there is room in the left oneChris Mason2008-04-24
| | | | | | balance level starts by trying to empty the middle block, and then pushes from the right to the middle. This might empty the right block and leave a small number of pointers in the middle.
* Update the Ext3 converterChris Mason2008-04-22
| | | | | | | | | | | The main changes in this patch are adding chunk handing and data relocation ability. In the last step of conversion, the converter relocates data in system chunk and move chunk tree into system chunk. In the rollback process, the converter remove chunk tree from system chunk and copy data back. Regards YZ ---
* Add chunk uuids and update multi-device back referencesChris Mason2008-04-15
| | | | | | | | | | | | | | | | | | 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.
* Don't allow written blocks from this transaction to be reallocatedChris Mason2008-04-04
| | | | | | | | | | | | When a block is freed, it can be immediately reused if it is from the current transaction. But, an extra check is required to make sure the block had not been written yet. If it were reused after being written, the transid in the block header might match the transid of the next time the block was allocated. The parent node records the transaction ID of the block it is pointing to, and this is used as part of validating the block on reads. So, there can only be one version of a block per transaction.
* Recow all roots at the end of mkfsChris Mason2008-04-04
| | | | | | 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.
* Add support for single single duplication of metadataChris Mason2008-04-03
|
* Add mirroring support across multiple drivesChris Mason2008-04-03
|
* btrfs-progs: Fix printf format casting errorsAlex Chiang2008-04-01
| | | | | | | | | | | We get lots of warnings of the flavor: utils.c:441: warning: format '%Lu' expects type 'long long unsigned int' but argument 2 has type 'u64' And thanks to -Werror, the build fails. Clean up these printfs by properly casting the arg to the format specified. Signed-off-by: Alex Chiang <achiang@hp.com>
* Implement raid0 when multiple devices are presentChris Mason2008-03-25
| | | | This defaults to striping across all devices
* Walk all block devices looking for btrfsChris Mason2008-03-24
|
* Dynamic chunk allocationChris Mason2008-03-24
|
* Add support for multiple devices per filesystemChris Mason2008-03-24
|
* Remove extent back refs in batches, and avoid duplicate searchesChris Mason2008-03-04
|
* Add debugging for block group update failureChris Mason2008-02-04
|
* Insert extent record and the first backref in a single balanceChris Mason2008-03-04
|
* Tune readahead during defrag to avoid reading too much at onceChris Mason2008-01-24
|
* Rename the extent_map code to extent_ioChris Mason2008-03-04
| | | | This mirrors the changes in the kernel code.
* Hash in the owner and offset for file extent backref keysChris Mason2008-02-01
|
* A few update for btrfs-progsYan2008-01-08
| | | | | | | Hello, This patch adds inode flags definition to btrfs-progs and updates extent-tree.c to match the kernel.
* Update find_free_extent for the ext3 conversion toolYan2008-01-04
| | | | | This patch adds customized find_free_extent support to btrfs-progs, the conversion program requires this.
* Update btrfs-progs to match kernel sourcesYan2008-01-04
|
* Add back pointers from extents to the file or btree referencing themChris Mason2007-12-11
|
* Add generation numbers to block pointersChris Mason2007-12-09
|
* Update btrfs-progs to better match the kernelYan2007-12-05
|
* Add simple stripe size parameterChris Mason2007-11-30
|
* properly init block group cache structsChris Mason2007-10-19
|
* Remove the last radix tree (block_group_cache)Chris Mason2007-10-17
|
* Create a slightly more generic extent-caching structureChris Mason2007-10-15
|
* Switch to byte granular allocationsChris Mason2007-10-15
|
* Stop using radix trees to record pending allocationsChris Mason2007-10-15
|
* Allow large blocksChris Mason2007-10-15
|
* Make btrfs-progs compile with -fstrict-aliasing (included in -O2) again.Jan Engelhardt2007-09-14
| | | | | | | | | This is done by doing a two-step conversion (rather than a one-step). First, the variable goes from type * to void *, and then to implicitly to void **. (Not sure if this is "good practice", but it shuts up the compiler, so it seems the compiler takes into account that we are actually punning it this way.)
* btrfs-progs support for root block accountingJosef Bacik2007-08-29
| | | | | | 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,
* add GPLv2Chris Mason2007-06-12
|
* printf cleanupsChris Mason2007-06-12
|
* 32 bit compile fixesChris Mason2007-06-08
|
* cleanup warnings found with -O2Chris Mason2007-05-22
|
* start of block group codeChris Mason2007-04-26
|
* get rid of the extent_item type fieldChris Mason2007-04-24
|
* fsck checks against extent map, small fixesChris Mason2007-04-23
|
* add owner and type fields to the extents aand block headersChris Mason2007-04-20
|
* drop owner and parentidChris Mason2007-04-10
|
* uuidsChris Mason2007-04-05
|
* generations on headersChris Mason2007-03-26
|
* Better block record keeping, real mkfsChris Mason2007-03-20
|
* Add inode map, and the start of file extent itemsChris Mason2007-03-20
|
* transaction handles everywhereChris Mason2007-03-16
|
* pin freed blocks from the FS tree tooChris Mason2007-03-16
|
* Use a chunk of the key flags to record the item type.Chris Mason2007-03-15
| | | | | | Add (untested and simple) directory item code Fix comp_keys to use the new key ordering Add btrfs_insert_empty_item