summaryrefslogtreecommitdiff
path: root/fs/btrfs/extent-tree.c
AgeCommit message (Collapse)AuthorFilesLines
2008-09-25Btrfs: Create extent_buffer interface for large blocksizesChris Mason1-144/+150
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25Btrfs: Fix duplicate ENOSPC checks in find_free_extentChris Mason1-14/+4
find_free_extent would fail to wrap around to the start of the drive because it was doing the enospc case checking twice in some cases, causing it to return -ENOSPC early. Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25Btrfs: Use balance_dirty_pages_nr on btree blocksChris Mason1-0/+1
btrfs_btree_balance_dirty is changed to pass the number of pages dirtied for more accurate dirty throttling. This lets the VM make better decisions about when to force some writeback. Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-15Btrfs: Fix cache_block_group to catch holes at the start of the groupYan1-28/+33
Cache block group was overly complex and missed free blocks at the very start of the group. This patch simplifies things significantly. Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-29Btrfs: Fix oopsen in extent_tree.c during enospcYan1-3/+2
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-29Btrfs: Add per-root block accounting and sysfs entriesJosef Bacik1-2/+15
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-28Btrfs: Add delayed allocation to the extent based page tree codeChris Mason1-9/+0
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-28Btrfs: Do more extensive readahead during tree searchesChris Mason1-2/+2
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-10Btrfs: Add BH_Defrag to mark buffers that are in need of defraggingChris Mason1-0/+2
This allows the tree walking code to defrag only the newly allocated buffers, it seems to be a good balance between perfect defragging and the performance hit of repeatedly reallocating blocks. Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-10Btrfs: Btree defrag on the extent-mapping tree as wellChris Mason1-1/+27
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-09Btrfs: Further reduce the concurrency penalty of defrag and drop_snapshotChris Mason1-7/+6
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-09Btrfs: Replace extent tree preallocation code with some bit radix magic.Chris Mason1-187/+43
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-08Btrfs: Let some locks go during defrag and snapshot droppingChris Mason1-2/+4
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-08Btrfs: Add run time btree defrag, and an ioctl to force btree defragChris Mason1-21/+32
This adds two types of btree defrag, a run time form that tries to defrag recently allocated blocks in the btree when they are still in ram, and an ioctl that forces defrag of all btree blocks. File data blocks are not defragged yet, but this can make a huge difference in sequential btree reads. Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-07Btrfs: Fold some btree readahead routines into something more generic.Chris Mason1-29/+1
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-07Btrfs: Do snapshot deletion in smaller chunks.Chris Mason1-4/+41
Before, snapshot deletion was a single atomic unit. This caused considerable lock contention and required an unbounded amount of space. Now, the drop_progress field in the root item is used to indicate how far along snapshot deletion is, and to resume where it left off. Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-07-11Btrfs: trivial include fixupsZach Brown1-1/+1
Almost none of the files including module.h need to do so, remove them. Include sched.h in extent-tree.c to silence a warning about cond_resched() being undeclared. Signed-off-by: Zach Brown <zach.brown@oracle.com> Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-28Btrfs: crash recovery fixesChris Mason1-4/+33
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-26Btrfs: Allow find_free_extent callers to pass in an exclusion rangeChris Mason1-49/+30
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-26Btrfs: Fix super block updates during transaction commitChris Mason1-8/+8
The super block written during commit was not consistent with the state of the trees. This change adds an in-memory copy of the super so that we can make sure to write out consistent data during a commit. Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-22Btrfs: Audit callers and return codes to make sure -ENOSPC gets up the stackChris Mason1-26/+115
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-20Btrfs: reada while dropping snapshotsChris Mason1-1/+30
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-19Btrfs: cache the extent tree preallocationChris Mason1-2/+12
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-18Subject: Rework btrfs_file_write to only allocate while page locks are heldChris Mason1-1/+0
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-14btrfs: Code cleanupAneesh1-4/+0
Attaching below is some of the code cleanups that i came across while reading the code. a) alloc_path already calls init_path. b) Mention that btrfs_inode is the in memory copy.Ext4 have ext4_inode_info as the in memory copy ext4_inode as the disk copy Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-12Btrfs: add GPLv2Chris Mason1-0/+18
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-12Btrfs: printk fixesChris Mason1-5/+0
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-12Btrfs: 64 bit div fixesChris Mason1-19/+24
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-12Btrfs: fix oops after block group lookupChris Mason1-13/+16
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-08Btrfs: d_type optimizationChris Mason1-0/+1
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-30Btrfs: use a separate flag for search_start vs a hint in find_free_extentChris Mason1-27/+42
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-30Btrfs: block group switchingChris Mason1-24/+61
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-24Btrfs: sparse files!Chris Mason1-4/+10
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-18Btrfs: allocator optimizations, truncate readaheadChris Mason1-14/+62
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-10Btrfs: fix check_node and check_leaf to use less cpuChris Mason1-3/+3
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-10Btrfs: many allocator fixes, pretty solidChris Mason1-52/+323
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-08Btrfs: allocator and tuningChris Mason1-42/+33
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-06Btrfs: more allocator enhancementsChris Mason1-79/+238
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-03Btrfs: early metadata/data splitChris Mason1-47/+48
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-02Btrfs: fix page cache memory leakChris Mason1-11/+1
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-01Btrfs: directory readaheadChris Mason1-0/+1
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-30Btrfs: allocator improvements, inode block groupsChris Mason1-40/+98
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-28Btrfs: prealloc more blocks for the extent mapChris Mason1-1/+1
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-28Btrfs: smarter transaction writebackChris Mason1-0/+1
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-28Btrfs: try to drop dead cow pages from ramChris Mason1-0/+17
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-27Btrfs: allocator tweaksChris Mason1-2/+5
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-27Btrfs: more block allocator workChris Mason1-12/+83
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-27Btrfs: start of block group codeChris Mason1-16/+188
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-25Btrfs: change around extent-tree preallocChris Mason1-23/+78
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-24Btrfs: get rid of the extent_item type fieldChris Mason1-4/+1
Signed-off-by: Chris Mason <chris.mason@oracle.com>