Commit Graph

268 Commits

Author SHA1 Message Date
Chris Mason
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
Chris Mason
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
Chris Mason
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
Aneesh
a1f396304f Btrfs: Some code cleanups
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-07-11 10:03:27 -04:00
Zach Brown
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
Chris Mason
ccd467d60e Btrfs: crash recovery fixes
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-28 15:57:36 -04:00
Chris Mason
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
Aneesh
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
Chris Mason
6cbd557078 Btrfs: add GPLv2
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-12 09:07:21 -04:00
Chris Mason
098f59c251 Btrfs: patch queue: fix corruption when splitting large items
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-11 11:33:21 -04:00
Chris Mason
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
Chris Mason
31f3c99b73 Btrfs: allocator improvements, inode block groups
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-30 15:25:45 -04:00
Chris Mason
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
Chris Mason
33ade1f826 Btrfs: node balance optimizations
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-20 13:48:57 -04:00
Chris Mason
e66f709b15 Btrfs: write barriers on commit, balance level before split
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-20 13:16:02 -04:00
Chris Mason
a429e51371 Btrfs: working file_write, reorganized key flags
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-18 16:15:28 -04:00
Chris Mason
70b2befd0c Btrfs: rework csums and extent item ordering
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-17 15:39:32 -04:00
Chris Mason
b18c668581 Btrfs: progress on file_write
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-17 13:26:50 -04:00
Chris Mason
6567e837df Btrfs: early work to file_write in big extents
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-16 09:22:45 -04:00
Chris Mason
7eccb903a8 Btrfs: create a logical->phsyical block number mapping scheme
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-11 15:53:25 -04:00
Chris Mason
d0dbc6245c Btrfs: drop owner and parentid
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-10 12:36:36 -04:00
Chris Mason
3eb0314dc1 Btrfs: uuids
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-05 14:28:50 -04:00
Chris Mason
d4dbff953e Btrfs: support for items bigger than 1/2 the blocksize
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-04 14:08:15 -04:00
Chris Mason
df24a2b9c9 Btrfs: early inline file data code
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-04 09:36:31 -04:00
Chris Mason
2c90e5d658 Btrfs: still corruption hunting
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-02 10:50:19 -04:00
Chris Mason
d602557953 Btrfs: corruption hunt continues
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-30 14:27:56 -04:00
Chris Mason
22b0ebda6c Btrfs: hunting slab corruption
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-30 08:47:31 -04:00
Chris Mason
f254e52c1c Btrfs: verify csums on read
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-29 15:15:27 -04:00
Chris Mason
9a6f11ed8f Btrfs: split out level field in struct header
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-27 09:06:38 -04:00
Chris Mason
7f5c15160e Add generation number to btrfs_header, readdir fixes, hash collision fixes
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-23 15:56:19 -04:00
Chris Mason
d571976292 btrfs_create, btrfs_write_super, btrfs_sync_fs
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-23 10:01:08 -04:00
Chris Mason
e20d96d64f Mountable btrfs, with readdir
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-22 12:13:20 -04:00
Chris Mason
2e635a2783 Btrfs: initial move to kernel module land
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-21 11:12:56 -04:00
Chris Mason
4068947886 Btrfs: minor comments
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-17 14:29:23 -04:00
Chris Mason
e089f05c18 Btrfs: transaction handles everywhere
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-16 16:20:31 -04:00
Chris Mason
88fd146c27 Btrfs: pin freed blocks from the FS tree too
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-16 08:56:18 -04:00
Chris Mason
a8a2ee0c60 Btrfs: add a name_len to dir items, reorder key
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-16 08:46:49 -04:00
Chris Mason
62e2749e03 Btrfs: 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

Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-15 12:56:47 -04:00
Chris Mason
123abc88c9 Btrfs: variable block size support
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-14 14:14:43 -04:00
Chris Mason
eaee50e881 Btrfs: merge leaves before split
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-13 11:17:52 -04:00
Chris Mason
9aca1d5132 Btrfs: make some funcs static
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-13 11:09:37 -04:00
Chris Mason
234b63a091 rename funcs and structs to btrfs
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-13 10:46:10 -04:00
Chris Mason
1d4f8a0c1e Btrfs: node->blockptrs endian fixes
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-13 09:28:32 -04:00
Chris Mason
0783fcfc4d Btrfs: struct item endian fixes
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-12 20:12:07 -04:00
Chris Mason
e2fa7227cd Btrfs: struct key endian fixes
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-12 16:22:34 -04:00
Chris Mason
7518a238ea Btrfs: get/set for struct header fields
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-12 12:01:18 -04:00
Chris Mason
037e639048 Btrfs: get rid of add recursion
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-07 11:50:24 -05:00
Chris Mason
a28ec19775 Btrfs: Fixup reference counting on cows
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-06 20:08:01 -05:00
Chris Mason
02217ed299 Btrfs: early reference counting
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-02 16:08:05 -05:00
Chris Mason
f0930a37f1 Btrfs: Fix extent code to use merge during delete
Remove implicit commit in del_item and insert_item
Add implicit commit to close()
Add commit op in random-test

Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-02 09:47:58 -05:00
Chris Mason
ed2ff2cba7 Btrfs: pretend page cache & commit code
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-01 18:59:40 -05:00
Chris Mason
79f95c82dc Btrfs: Fixup the code to merge during path walks
Add a bulk insert/remove test to random-test
Add the quick-test code back as another regression test

Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-01 15:16:26 -05:00
Chris Mason
bb8039515d Btrfs: merge on the way down during deletes
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-01 12:04:21 -05:00
Chris Mason
0f70abe2b3 Btrfs: more return code checking
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-02-28 16:46:22 -05:00
Chris Mason
aa5d6bed25 Btrfs: return code checking
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-02-28 16:35:06 -05:00
Chris Mason
8e19f2cd45 Btrfs: Take out the merge-during-search-on-delete code, it is buggy.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-02-28 09:27:02 -05:00
Chris Mason
fec577fb7f Btrfs: Add fsx-style randomized tree tester
Add debug-tree command to print the tree
Add extent-tree.c to the repo
Comment ctree.h

Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-02-26 10:40:21 -05:00
Chris Mason
97571fd0c9 Btrfs: cleanup & comment
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-02-24 13:39:08 -05:00
Chris Mason
00ec4c5161 Btrfs: push_leaf_right
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-02-24 12:47:20 -05:00
Chris Mason
5de08d7d50 Btrfs: Break up ctree.c a little
Extent fixes

Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-02-24 06:24:44 -05:00
Chris Mason
9a8dd1502d Btrfs: Block sized tree extents and extent deletion
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-02-23 08:38:36 -05:00
Chris Mason
5c680ed620 Btrfs: switch to early splits
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-02-22 11:39:13 -05:00
Chris Mason
cfaa72952f Btrfs: extent fixes
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-02-21 17:04:57 -05:00
Chris Mason
d97e63b69e Btrfs: early extent mapping support
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-02-20 16:40:44 -05:00
Chris Mason
74123bd72a Btrfs: Commenting/cleanup
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-02-02 11:05:29 -05:00
Chris Mason
eb60ceac0e Btrfs: Add backing store, memory management
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-02-02 09:18:22 -05:00
Chris Mason
4920c9ac9a Btrfs: Faster deletes, add Makefile and kerncompat
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-01-26 16:38:42 -05:00
Chris Mason
be0e5c097f Btrfs: Initial checkin, basic working tree code
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-01-26 15:51:26 -05:00