Commit Graph

9169 Commits

Author SHA1 Message Date
Chris Mason 93a6925ec1 Btrfs: Fix extra link count dec in rename
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-14 09:42:31 -04:00
Chris Mason 5ce14bbcdd Btrfs: Find and remove dead roots the first time a root is loaded.
Dead roots are trees left over after a crash, and they were either in the
process of being removed or were waiting to be removed when the box crashed.
Before, a search of the entire tree of root pointers was done on mount
looking for dead roots.  Now, the search is done the first time we load
a root.

This makes mount faster when there are a large number of snapshots, and it
enables the block accounting code to properly update the block counts on
the latest root as old versions of the root are reaped after a crash.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-11 11:15:39 -04:00
Christoph Hellwig 0e2752a72c Btrfs: [PATCH] extent_map: add writepage_end_io hook
XFS updates the ondisk inode size only after the data I/O has finished,
so it needs a hook when the writepage end_bio handler has finished.

Might not be worth applying as-is as the per-page callback is very
ineffcient.  What XFS really wants is a callback when writeout of a
whole extent has completed.  This delayed i_size updates scheme might
be worthwile for btrfs aswell, btw.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-10 20:02:33 -04:00
Christoph Hellwig b06355f0fe Btrfs: [PATCH] extent_map: make the writepage_io hook optional
The writepage_io is not mandatory, e.g. my port of xfs to the extent_map
code does not have one for now.  So handle a NULL pointer gracefully
here.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-10 20:02:32 -04:00
Christoph Hellwig d396c6f554 Btrfs: [PATCH] extent_map: provide generic bmap
generic_bmap is completely trivial, while the extent to bh mapping in
btrfs is rather complex.  So provide a extent_bmap instead that takes
a get_extent callback and can be used by filesystem using the extent_map
code.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-10 20:02:30 -04:00
Christoph Hellwig 90f1c19a9f Btrfs: [PATCH] extent_map: fix locking for bio completion
The bio completion handlers can be run in any context, e.g. when using
the old ide driver they run in hardirq context with irqs disabled so
lockdep rightfully warns about using write_lock_irq useage in these
handlers.

This patch switches clear_extent_bit and set_extent_bit to
write_lock_irqsave to fix this problem.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-10 20:02:27 -04:00
Christoph Hellwig 9433063bcb [PATCH] btrfs: fix printk format warning
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-10 20:02:22 -04:00
Chris Mason a8c450b211 Btrfs: Reorder tests in set_extent_bit to properly find holes
Yan Zheng noticed that set_extent_bit was exiting too early when there
was a hole in the map.  The fix is to reorder the tests to check for the
hole first.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-10 20:00:27 -04:00
Chris Mason 011410bd85 Btrfs: Add more synchronization before creating a snapshot
File data checksums are only done during writepage, so we have to make sure
all pages are written when the snapshot is taken.  This also adds some
locking so that new writes don't race in and add new dirty pages.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-10 19:58:36 -04:00
Chris Mason 86479a04ee Add support for defragging files via btrfsctl -d. Avoid OOM on extent tree
defrag.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-10 19:58:16 -04:00
Chris Mason 8e21528f87 Btrfs: remove extra drop_extent_cache call
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-30 12:16:51 -04:00
Chris Mason 2bf5a725a3 Btrfs: fsx delalloc fixes
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-30 11:54:02 -04:00
Chris Mason 07157aacb1 Btrfs: Add file data csums back in via hooks in the extent map code
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-30 08:50:51 -04:00
Chris Mason 95e0528919 Btrfs: Use mount -o subvol to select the subvol directory instead of dev:
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-29 09:11:44 -04:00
Yan 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
Yan 4b82d6e4a5 Btrfs: Add mount into directory support
Modified form of original patch from Christoph Hellwig to make btrfs
mount into the default subvolume by default.

mount /dev/somedevice:subvolumename to get other subvolumes or
mount /dev/somedevice:. to get the root

Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-29 09:11:44 -04:00
Yan 1b4ab1bb4b Btrfs: Fix mknod to properly send rdev info back to disk
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-29 09:11:44 -04:00
Yan 252c38f069 Btrfs: ctree.c cleanups
Fixup a few buffer_head release errors, and fix an off by one in
balance_node_right.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-29 09:11:44 -04:00
Josef Bacik 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
Chris Mason 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
Chris Mason a52d9a8033 Btrfs: Extent based page cache code. This uses an rbtree of extents and tests
instead of buffer heads.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-27 16:49:44 -04:00
Chris Mason 83df7c1d8b Btrfs: Make sure to cow the root during a snapshot
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-27 16:49:44 -04:00
Chris Mason 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
Yan 3202061128 fix block readahead in btrfs_next_leaf
Send the correct slot down to reada_for_search

Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-27 15:17:54 -04:00
Josef Bacik 15ee9bc7ed Btrfs: delay commits during fsync to allow more writers
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-10 16:22:09 -04:00
Chris Mason 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
Chris Mason 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
Chris Mason 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
Chris Mason 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
Chris Mason 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
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
Joel Becker 8578f0f1fd Btrfs: cleaner make clean
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-07-25 14:04:51 -04:00
Chris Mason 92fee66d49 Btrfs: deal with api changes in 2.6.23-rc1
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-07-25 12:31:35 -04:00
Josef Bacik 618e21d595 Btrfs: Implement mknod
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-07-11 10:18:17 -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 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
Chris Mason 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
Chris Mason 79c44584ea Btrfs: Fix mtime and ctime updates on parent dirs
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-25 10:09:33 -04:00
Chris Mason 22bb92f376 Btrfs: Documentation update
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-22 14:49:31 -04:00
Chris Mason 5eda7b5e9b Btrfs: Add the ability to find and remove dead roots after a crash.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-22 14:16:25 -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
Chris Mason 11bd143fc8 Btrfs: Switch to libcrc32c to avoid problems with cryptomgr on highmem machines
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-22 14:16:24 -04:00
Chris Mason e011599b0f Btrfs: reada while dropping snapshots
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-19 16:23:05 -04:00
Chris Mason 85e55b13e4 Btrfs: cache the extent tree preallocation
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-19 15:50:51 -04:00
Chris Mason 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
Chris Mason 9ebefb180b Btrfs: patch queue: page_mkwrite
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-15 13:50:00 -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 340887809d Btrfs: i386 fixes from axboe
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-12 11:36:58 -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 8a712645c3 Btrfs: no slashes in subvolume names
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-12 08:21:35 -04:00
Chris Mason 5af3981c18 Btrfs: printk fixes
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-12 07:50:13 -04:00
Chris Mason 84f54cfa78 Btrfs: 64 bit div fixes
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-12 07:43:08 -04:00
Chris Mason 39279cc3d2 Btrfs: split up super.c
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-12 06:35:45 -04:00
Chris Mason 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
Chris Mason 0cf6c62017 Btrfs: remove device tree
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-09 09:22:25 -04:00
Chris Mason ad693af684 Btrfs: reap dead roots right after commit
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-09 08:19:57 -04:00
Chris Mason facda1e787 Btrfs: get forced transaction commits via workqueue
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-08 18:11:48 -04:00
Chris Mason 08607c1b18 Btrfs: add compat ioctl
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-08 15:33:54 -04:00
Chris Mason fabb568183 Btrfs: d_type optimization
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-07 22:13:21 -04:00
Chris Mason 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
Chris Mason 1e2677e000 Btrfs: block group switching
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-29 16:52:18 -04:00
Chris Mason 1de037a43e Btrfs: fixup various fsx failures
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-29 15:17:08 -04:00
Chris Mason 3a68637562 Btrfs: sparse files!
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-24 13:35:57 -04:00
Chris Mason 2b8d99a723 Btrfs: symlinks and hard links
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-24 08:34:10 -04:00
Chris Mason e06afa839e Btrfs: rename
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-23 15:44:28 -04:00
Chris Mason f9f3c6b666 Btrfs: 2.6.21-git fixes
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-21 14:05:12 -04:00
Chris Mason de428b63b1 Btrfs: allocator optimizations, truncate readahead
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-18 13:28:27 -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 509659cde5 Btrfs: switch to crc32c instead of sha256
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-10 12:36:17 -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 e37c9e6921 Btrfs: many allocator fixes, pretty solid
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-09 20:13:14 -04:00
Chris Mason 3e1ad54fe2 Btrfs: allocator and tuning
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-07 20:03:49 -04:00
Chris Mason be74417553 Btrfs: more allocator enhancements
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-06 10:15:01 -04:00
Chris Mason be08c1b9f8 Btrfs: early metadata/data split
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-03 09:06:49 -04:00
Chris Mason 35b7e47610 Btrfs: fix page cache memory leak
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-02 15:53:43 -04:00
Chris Mason 090d18753c Btrfs: directory readahead
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-01 08:53:32 -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 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
Chris Mason 7c4452b9a6 Btrfs: smarter transaction writeback
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-28 09:29:35 -04:00
Chris Mason 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
Chris Mason 28b8bb9e00 Btrfs: allocator tweaks
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-27 11:42:05 -04:00
Chris Mason cd1bc4653d Btrfs: more block allocator work
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-27 10:08:34 -04:00
Chris Mason 9078a3e1e4 Btrfs: start of block group code
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-26 16:46:15 -04:00
Chris Mason f2458e1d8c Btrfs: change around extent-tree prealloc
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-25 15:52:25 -04:00
Chris Mason f68cad0f9e Btrfs: fixup dirty_inode related deadlocks
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-24 12:44:26 -04:00
Chris Mason 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
Chris Mason b51338628f Btrfs: add dirty_inode call
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-24 11:52:22 -04:00
Chris Mason 5e82849e63 Btrfs: new subvolume oops fix
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-23 19:10:49 -04:00
Chris Mason 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
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 8fd17795b2 Btrfs: early fsync support
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-19 21:01:03 -04:00
Chris Mason 7e38180e20 Btrfs: directory inode index is back
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-19 15:36:27 -04:00
Chris Mason 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
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 b4100d6424 Btrfs: add a device id to device items
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-12 12:14:00 -04:00
Chris Mason 8352d8a473 Btrfs: add disk ioctl, mostly working
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-12 10:43:05 -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 0bd93ba022 Btrfs: early support for multiple devices
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-11 13:57:44 -04:00
Chris Mason cac87faa09 Btrfs: use a dedicated inode num for root root dir
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-11 08:59:20 -04:00
Chris Mason 2d13d8d065 Btrfs: detect duplicate subvol names
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-10 20:07:20 -04:00
Chris Mason 2619ba1f0f Btrfs: subvolumes
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-10 16:58:11 -04:00
Chris Mason 2932f3ec94 Btrfs: when forced to cow for file_write, get the page uptodate first
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-10 14:22:02 -04:00
Chris Mason 79b2cb1fa6 Btrfs: only cow in get_block when create==1
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-10 13:51:41 -04:00
Chris Mason 48ddc6f44b Btrfs: cow file extents before writing
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-10 13:20:21 -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 1b05da2ee6 Btrfs: drop the inode map tree
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-10 12:13:09 -04:00
Chris Mason c5739bba52 Btrfs: snapshot progress
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-10 09:27:04 -04:00
Chris Mason 0f7d52f443 Btrfs: groundwork for subvolume and snapshot roots
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-09 10:42:37 -04:00
Chris Mason d6e4a428eb Btrfs: start of support for many FS volumes
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-06 15:37: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 5be6f7f174 Btrfs: dirindex optimizations
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-05 13:35:25 -04:00
Chris Mason 7fcde0e329 Btrfs: finish off inode indexing in dirs, add overflows
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-05 12:13:21 -04:00
Chris Mason 5f26f772e5 Btrfs: more inode indexed directory work
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-05 10:38:44 -04:00
Chris Mason bae45de03c Btrfs: add dir inode index
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-04 21:22:22 -04:00
Chris Mason b1a4d96509 Btrfs: tweak the inode-map and free extent search starts on cold mount
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-04 15:27:52 -04:00
Chris Mason e8f05c4508 Btrfs: disable inline data code for now
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-04 14:30:09 -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 9d64272cd3 Btrfs: don't wait on uptodate buffers on read
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-03 11:43:19 -04:00
Chris Mason 2da566edd8 Btrfs: csum_verify_file_block locking fix
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-02 15:43:21 -04:00
Chris Mason 7cfcc17e7f Btrfs: corruptions fixed
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-02 14:53:59 -04:00
Chris Mason 5caf2a0029 Btrfs: dynamic allocation of path struct
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-02 11:20:42 -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 75dfe3960e btrfs_file_write -- first pass
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-29 11:56:46 -04:00
Chris Mason 30ae846748 Btrfs: btree address space fixes
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-29 09:59:15 -04:00
Chris Mason 87cbda5c1f Btrfs: sha256 csums on metadata
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-28 19:44:27 -04:00
Chris Mason d98237b3ed Btrfs: use a btree inode instead of sb_getblk
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-28 13:57:48 -04:00
Chris Mason 5f443fd280 btrfs_rmdir
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-27 13:42:32 -04:00
Chris Mason 9773a78868 Btrfs: byte offsets for file keys
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-27 11:26:26 -04:00
Chris Mason f4b9aa8d3b btrfs_truncate
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-27 11:05:53 -04:00
Chris Mason 71951f35a6 Btrfs: add generation field to file extent
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-27 09:16:29 -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 6407bf6d7c Btrfs: reference counts on data extents
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-27 06:33:00 -04:00
Chris Mason dee26a9f7a btrfs_get_block, file read/write
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-26 16:00:06 -04:00
Chris Mason 4730a4bc5b btrfs_dirty_inode
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-26 12:00:39 -04:00
Chris Mason b52d63fece Btrfs: TODO update
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-26 11:01:09 -04:00
Chris Mason 8ef97622ca Btrfs: add a radix back bit tree
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-26 10:15:30 -04:00
Chris Mason f7922033ef btrfs_mkdir
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-25 20:17:36 -04:00
Chris Mason dcea79152c Btrfs: very simple readdir readahead
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-25 14:03:08 -04:00
Chris Mason 134e973134 Btrfs: unlink and delete_inode
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-25 13:44:56 -04:00
Chris Mason 78fae27ebf Btrfs: leak fixes, pinning fixes
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-25 11:35:08 -04:00
Chris Mason d561c025ee Btrfs: very minimal locking
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-23 19:47:49 -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 df2ce34c88 Btrfs: properly set new buffers for new blocks up to date
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-23 11:00:45 -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 79154b1b5b Btrfs: transaction rework
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-22 15:59:16 -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 1261ec42b3 Btrfs: Better block record keeping, real mkfs
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-20 20:35:03 -04:00
Chris Mason 293ffd5fd3 Btrfs: change dir-test to insert inode_items
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-20 15:57:25 -04:00
Chris Mason 313a013bb9 Btrfs: Update TODO
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-20 14:51:12 -04:00
Chris Mason 9f5fae2fe6 Btrfs: Add inode map, and the start of file extent items
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-20 14:38:32 -04:00
Chris Mason 631d7d950a Btrfs: add transaction.h to the Makefile
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-20 09:13:49 -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 1e1d27017c Btrfs: add inode item
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-15 19:03:33 -04:00
Chris Mason 1d4f6404de Btrfs: directory testing code and dir item fixes
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-15 15:18:43 -04:00
Chris Mason 24af03ea5e Btrfs: add hash.h
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-15 12:57:43 -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 a1516c8921 Btrfs: reorder key offset and flags
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-14 14:26:53 -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 4beb1b8b75 Btrfs: add leaf data casting helper
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-14 10:31:29 -04:00
Chris Mason 710874947a Btrfs: properly reset block cache on free
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-14 09:20:39 -04:00
Chris Mason 3768f3689f Btrfs: Change the super to point to a tree of trees to enable persistent snapshots
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-13 16:47:54 -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 cf27e1eec0 Btrfs: struct extent_item endian
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-13 09:49:06 -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 bb492bb0a5 Btrfs: Add sparse endian annotations to struct header
rename struct header to btrfs_header

Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-12 12:29:44 -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 83e15a28e0 fix leak in btrfs_drop_snapshot
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-12 09:03:27 -04:00
Chris Mason 20524f0226 Btrfs: recursion free-first pass
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-10 06:35:47 -05:00
Chris Mason 0579da4280 Btrfs: Fixup last found extent caching
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-07 16:15:30 -05: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 77ce6846c4 Btrfs: period commit during initial fill in the random tester
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-02 10:06:43 -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 af86d07efe Btrfs: Add sparse checking to Makefile
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-02-28 09:40:58 -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 d16302ab0e Btrfs: more 32 bit cleanups
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-02-26 14:26:58 -05:00
Chris Mason 41903fe666 Btrfs: 32bit cleanups
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-02-26 10:55:42 -05:00
Chris Mason 7cf75962ac Btrfs: u64 cleanups
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-02-26 10:55:01 -05:00
Chris Mason c673024aba Btrfs: fixup dbfile perms
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-02-26 10:46:55 -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 06ed4b316e Btrfs: add mkfs.c
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-02-20 16:41:09 -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