7d7d6068be
Btrfs: Fix cache_block_group to catch holes at the start of the group
...
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-09-14 16:15:28 -04:00
e9fe395e47
Btrfs: Fix oopsen in extent_tree.c during enospc
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-08-29 09:11:44 -04:00
58176a9604
Btrfs: Add per-root block accounting and sysfs entries
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-08-29 15:47:34 -04:00
b888db2bd7
Btrfs: Add delayed allocation to the extent based page tree code
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-08-27 16:49:44 -04:00
2cc58cf24f
Btrfs: Do more extensive readahead during tree searches
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-08-27 16:49:44 -04:00
f2183bde1a
Btrfs: Add BH_Defrag to mark buffers that are in need of defragging
...
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-10 14:42:37 -04:00
e9d0b13b5b
Btrfs: Btree defrag on the extent-mapping tree as well
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-08-10 14:06:19 -04:00
409eb95d7f
Btrfs: Further reduce the concurrency penalty of defrag and drop_snapshot
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-08-08 20:17:12 -04:00
26b8003f10
Btrfs: Replace extent tree preallocation code with some bit radix magic.
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-08-08 20:17:12 -04:00
f4468e94c8
Btrfs: Let some locks go during defrag and snapshot dropping
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-08-08 10:08:58 -04:00
6702ed490c
Btrfs: Add run time btree defrag, and an ioctl to force btree defrag
...
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-07 16:15:09 -04:00
3c69faecb8
Btrfs: Fold some btree readahead routines into something more generic.
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-08-07 15:52:22 -04:00
9f3a742736
Btrfs: Do snapshot deletion in smaller chunks.
...
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-08-07 15:52:19 -04:00
ec6b910fb3
Btrfs: trivial include fixups
...
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-07-11 10:00:37 -04:00
ccd467d60e
Btrfs: crash recovery fixes
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-06-28 15:57:36 -04:00
f2654de42a
Btrfs: Allow find_free_extent callers to pass in an exclusion range
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-06-26 12:20:46 -04:00
4b52dff6d3
Btrfs: Fix super block updates during transaction commit
...
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-26 10:06:50 -04:00
54aa1f4dfd
Btrfs: Audit callers and return codes to make sure -ENOSPC gets up the stack
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-06-22 14:16:25 -04:00
e011599b0f
Btrfs: reada while dropping snapshots
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-06-19 16:23:05 -04:00
85e55b13e4
Btrfs: cache the extent tree preallocation
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-06-19 15:50:51 -04:00
8c2383c3dd
Subject: Rework btrfs_file_write to only allocate while page locks are held
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-06-18 09:57:58 -04:00
f1ace244c8
btrfs: Code cleanup
...
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-13 16:18:26 -04:00
6cbd557078
Btrfs: add GPLv2
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-06-12 09:07:21 -04:00
5af3981c18
Btrfs: printk fixes
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-06-12 07:50:13 -04:00
84f54cfa78
Btrfs: 64 bit div fixes
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-06-12 07:43:08 -04:00
5276aedab0
Btrfs: fix oops after block group lookup
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-06-11 21:33:38 -04:00
fabb568183
Btrfs: d_type optimization
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-06-07 22:13:21 -04:00
fbdc762b4e
Btrfs: use a separate flag for search_start vs a hint in find_free_extent
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-05-30 10:22:12 -04:00
1e2677e000
Btrfs: block group switching
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-05-29 16:52:18 -04:00
3a68637562
Btrfs: sparse files!
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-05-24 13:35:57 -04:00
de428b63b1
Btrfs: allocator optimizations, truncate readahead
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-05-18 13:28:27 -04:00
8d7be552a7
Btrfs: fix check_node and check_leaf to use less cpu
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-05-10 11:24:42 -04:00
e37c9e6921
Btrfs: many allocator fixes, pretty solid
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-05-09 20:13:14 -04:00
3e1ad54fe2
Btrfs: allocator and tuning
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-05-07 20:03:49 -04:00
be74417553
Btrfs: more allocator enhancements
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-05-06 10:15:01 -04:00
be08c1b9f8
Btrfs: early metadata/data split
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-05-03 09:06:49 -04:00
35b7e47610
Btrfs: fix page cache memory leak
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-05-02 15:53:43 -04:00
090d18753c
Btrfs: directory readahead
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-05-01 08:53:32 -04:00
31f3c99b73
Btrfs: allocator improvements, inode block groups
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-04-30 15:25:45 -04:00
308535a05e
Btrfs: prealloc more blocks for the extent map
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-04-28 15:17:08 -04:00
7c4452b9a6
Btrfs: smarter transaction writeback
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-04-28 09:29:35 -04:00
06a2f9fa4c
Btrfs: try to drop dead cow pages from ram
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-04-28 08:48:10 -04:00
28b8bb9e00
Btrfs: allocator tweaks
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-04-27 11:42:05 -04:00
cd1bc4653d
Btrfs: more block allocator work
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-04-27 10:08:34 -04:00
9078a3e1e4
Btrfs: start of block group code
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-04-26 16:46:15 -04:00
f2458e1d8c
Btrfs: change around extent-tree prealloc
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-04-25 15:52:25 -04:00
c62a1920ce
Btrfs: get rid of the extent_item type field
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-04-24 12:07:39 -04:00
5d0c3e60fe
Btrfs: fix extent owner/type setting on extent tree blocks
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-04-23 17:01:05 -04:00
4d77567309
Btrfs: add owner and type fields to the extents aand block headers
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-04-20 20:23:12 -04:00
236454dfff
Btrfs: many file_write fixes, inline data
...
Signed-off-by: Chris Mason <chris.mason@oracle.com >
2007-04-19 13:37:44 -04:00