Chris Mason [Tue, 11 Sep 2007 00:00:27 +0000 (20:00 -0400)]
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>
Chris Mason [Mon, 10 Sep 2007 23:58:36 +0000 (19:58 -0400)]
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>
Chris Mason [Mon, 10 Sep 2007 23:58:16 +0000 (19:58 -0400)]
Add support for defragging files via btrfsctl -d. Avoid OOM on extent tree
defrag.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Thu, 30 Aug 2007 16:16:51 +0000 (12:16 -0400)]
Btrfs: remove extra drop_extent_cache call
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Thu, 30 Aug 2007 15:54:02 +0000 (11:54 -0400)]
Btrfs: fsx delalloc fixes
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Thu, 30 Aug 2007 12:50:51 +0000 (08:50 -0400)]
Btrfs: Add file data csums back in via hooks in the extent map code
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Wed, 29 Aug 2007 13:11:44 +0000 (09:11 -0400)]
Btrfs: Use mount -o subvol to select the subvol directory instead of dev:
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Yan [Wed, 29 Aug 2007 13:11:44 +0000 (09:11 -0400)]
Btrfs: Fix oopsen in extent_tree.c during enospc
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Yan [Wed, 29 Aug 2007 13:11:44 +0000 (09:11 -0400)]
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>
Yan [Wed, 29 Aug 2007 13:11:44 +0000 (09:11 -0400)]
Btrfs: Fix mknod to properly send rdev info back to disk
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Yan [Wed, 29 Aug 2007 13:11:44 +0000 (09:11 -0400)]
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>
Josef Bacik [Wed, 29 Aug 2007 19:47:34 +0000 (15:47 -0400)]
Btrfs: Add per-root block accounting and sysfs entries
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Mon, 27 Aug 2007 20:49:44 +0000 (16:49 -0400)]
Btrfs: Add delayed allocation to the extent based page tree code
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Mon, 27 Aug 2007 20:49:44 +0000 (16:49 -0400)]
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>
Chris Mason [Mon, 27 Aug 2007 20:49:44 +0000 (16:49 -0400)]
Btrfs: Make sure to cow the root during a snapshot
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Mon, 27 Aug 2007 20:49:44 +0000 (16:49 -0400)]
Btrfs: Do more extensive readahead during tree searches
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Yan [Mon, 27 Aug 2007 19:17:54 +0000 (15:17 -0400)]
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>
Chris Mason [Fri, 10 Aug 2007 20:32:29 +0000 (16:32 -0400)]
Btrfs: Added tag v0.7 for changeset
6125224d77d0
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Josef Bacik [Fri, 10 Aug 2007 20:22:09 +0000 (16:22 -0400)]
Btrfs: delay commits during fsync to allow more writers
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Fri, 10 Aug 2007 18:42:37 +0000 (14:42 -0400)]
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>
Chris Mason [Fri, 10 Aug 2007 18:06:19 +0000 (14:06 -0400)]
Btrfs: Btree defrag on the extent-mapping tree as well
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Thu, 9 Aug 2007 00:17:12 +0000 (20:17 -0400)]
Btrfs: Further reduce the concurrency penalty of defrag and drop_snapshot
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Thu, 9 Aug 2007 00:17:12 +0000 (20:17 -0400)]
Btrfs: Replace extent tree preallocation code with some bit radix magic.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Wed, 8 Aug 2007 14:08:58 +0000 (10:08 -0400)]
Btrfs: Let some locks go during defrag and snapshot dropping
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Tue, 7 Aug 2007 20:35:25 +0000 (16:35 -0400)]
Btrfs: Added tag v0.6 for changeset
c13e9a0bf9b4
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Tue, 7 Aug 2007 20:15:09 +0000 (16:15 -0400)]
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>
Chris Mason [Tue, 7 Aug 2007 19:52:22 +0000 (15:52 -0400)]
Btrfs: Fold some btree readahead routines into something more generic.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Tue, 7 Aug 2007 19:52:19 +0000 (15:52 -0400)]
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>
Joel Becker [Wed, 25 Jul 2007 18:04:51 +0000 (14:04 -0400)]
Btrfs: cleaner make clean
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Wed, 25 Jul 2007 16:31:35 +0000 (12:31 -0400)]
Btrfs: deal with api changes in 2.6.23-rc1
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Josef Bacik [Wed, 11 Jul 2007 14:18:17 +0000 (10:18 -0400)]
Btrfs: Implement mknod
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Aneesh [Wed, 11 Jul 2007 14:03:27 +0000 (10:03 -0400)]
Btrfs: Some code cleanups
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Zach Brown [Wed, 11 Jul 2007 14:00:37 +0000 (10:00 -0400)]
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>
Chris Mason [Thu, 28 Jun 2007 20:35:09 +0000 (16:35 -0400)]
Btrfs: Added tag v0.5 for changeset
080c0640a527
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Thu, 28 Jun 2007 19:57:36 +0000 (15:57 -0400)]
Btrfs: crash recovery fixes
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Tue, 26 Jun 2007 16:20:46 +0000 (12:20 -0400)]
Btrfs: Allow find_free_extent callers to pass in an exclusion range
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Tue, 26 Jun 2007 14:06:50 +0000 (10:06 -0400)]
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>
Chris Mason [Mon, 25 Jun 2007 14:09:33 +0000 (10:09 -0400)]
Btrfs: Fix mtime and ctime updates on parent dirs
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Fri, 22 Jun 2007 18:50:30 +0000 (14:50 -0400)]
Btrfs: Added tag v0.4 for changeset
d4bf0a71f074
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Fri, 22 Jun 2007 18:49:31 +0000 (14:49 -0400)]
Btrfs: Documentation update
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Fri, 22 Jun 2007 18:16:25 +0000 (14:16 -0400)]
Btrfs: Add the ability to find and remove dead roots after a crash.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Fri, 22 Jun 2007 18:16:25 +0000 (14:16 -0400)]
Btrfs: Audit callers and return codes to make sure -ENOSPC gets up the stack
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Fri, 22 Jun 2007 18:16:24 +0000 (14:16 -0400)]
Btrfs: Switch to libcrc32c to avoid problems with cryptomgr on highmem machines
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Tue, 19 Jun 2007 20:23:05 +0000 (16:23 -0400)]
Btrfs: reada while dropping snapshots
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Tue, 19 Jun 2007 19:50:51 +0000 (15:50 -0400)]
Btrfs: cache the extent tree preallocation
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Mon, 18 Jun 2007 14:32:44 +0000 (10:32 -0400)]
Btrfs: Added tag v0.3 for changeset
edfcc0faa35c
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Mon, 18 Jun 2007 13:57:58 +0000 (09:57 -0400)]
Subject: Rework btrfs_file_write to only allocate while page locks are held
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Fri, 15 Jun 2007 17:50:00 +0000 (13:50 -0400)]
Btrfs: patch queue: page_mkwrite
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Aneesh [Wed, 13 Jun 2007 20:18:26 +0000 (16:18 -0400)]
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>
Chris Mason [Wed, 13 Jun 2007 15:53:31 +0000 (11:53 -0400)]
Btrfs: Added tag v0.2 for changeset
8edac0ff7fb5
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Tue, 12 Jun 2007 15:36:58 +0000 (11:36 -0400)]
Btrfs: i386 fixes from axboe
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Tue, 12 Jun 2007 13:07:21 +0000 (09:07 -0400)]
Btrfs: add GPLv2
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Tue, 12 Jun 2007 12:21:35 +0000 (08:21 -0400)]
Btrfs: no slashes in subvolume names
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Tue, 12 Jun 2007 11:50:13 +0000 (07:50 -0400)]
Btrfs: printk fixes
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Tue, 12 Jun 2007 11:43:08 +0000 (07:43 -0400)]
Btrfs: 64 bit div fixes
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Tue, 12 Jun 2007 10:35:45 +0000 (06:35 -0400)]
Btrfs: split up super.c
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Tue, 12 Jun 2007 01:33:38 +0000 (21:33 -0400)]
Btrfs: fix oops after block group lookup
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Sat, 9 Jun 2007 13:22:25 +0000 (09:22 -0400)]
Btrfs: remove device tree
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Sat, 9 Jun 2007 12:19:57 +0000 (08:19 -0400)]
Btrfs: reap dead roots right after commit
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Fri, 8 Jun 2007 22:11:48 +0000 (18:11 -0400)]
Btrfs: get forced transaction commits via workqueue
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Fri, 8 Jun 2007 19:33:54 +0000 (15:33 -0400)]
Btrfs: add compat ioctl
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Fri, 8 Jun 2007 02:13:21 +0000 (22:13 -0400)]
Btrfs: d_type optimization
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Wed, 30 May 2007 14:22:12 +0000 (10:22 -0400)]
Btrfs: use a separate flag for search_start vs a hint in find_free_extent
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Tue, 29 May 2007 20:52:18 +0000 (16:52 -0400)]
Btrfs: block group switching
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Tue, 29 May 2007 19:17:08 +0000 (15:17 -0400)]
Btrfs: fixup various fsx failures
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Thu, 24 May 2007 17:35:57 +0000 (13:35 -0400)]
Btrfs: sparse files!
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Thu, 24 May 2007 12:34:10 +0000 (08:34 -0400)]
Btrfs: symlinks and hard links
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Wed, 23 May 2007 19:44:28 +0000 (15:44 -0400)]
Btrfs: rename
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Mon, 21 May 2007 18:05:12 +0000 (14:05 -0400)]
Btrfs: 2.6.21-git fixes
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Fri, 18 May 2007 17:28:27 +0000 (13:28 -0400)]
Btrfs: allocator optimizations, truncate readahead
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Fri, 11 May 2007 15:33:21 +0000 (11:33 -0400)]
Btrfs: patch queue: fix corruption when splitting large items
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Thu, 10 May 2007 16:36:17 +0000 (12:36 -0400)]
Btrfs: switch to crc32c instead of sha256
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Thu, 10 May 2007 15:24:42 +0000 (11:24 -0400)]
Btrfs: fix check_node and check_leaf to use less cpu
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Thu, 10 May 2007 00:13:14 +0000 (20:13 -0400)]
Btrfs: many allocator fixes, pretty solid
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Tue, 8 May 2007 00:03:49 +0000 (20:03 -0400)]
Btrfs: allocator and tuning
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Sun, 6 May 2007 14:15:01 +0000 (10:15 -0400)]
Btrfs: more allocator enhancements
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Thu, 3 May 2007 13:06:49 +0000 (09:06 -0400)]
Btrfs: early metadata/data split
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Wed, 2 May 2007 19:53:43 +0000 (15:53 -0400)]
Btrfs: fix page cache memory leak
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Tue, 1 May 2007 12:53:32 +0000 (08:53 -0400)]
Btrfs: directory readahead
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Mon, 30 Apr 2007 19:25:45 +0000 (15:25 -0400)]
Btrfs: allocator improvements, inode block groups
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Sat, 28 Apr 2007 19:17:08 +0000 (15:17 -0400)]
Btrfs: prealloc more blocks for the extent map
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Sat, 28 Apr 2007 13:29:35 +0000 (09:29 -0400)]
Btrfs: smarter transaction writeback
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Sat, 28 Apr 2007 12:48:10 +0000 (08:48 -0400)]
Btrfs: try to drop dead cow pages from ram
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Fri, 27 Apr 2007 15:42:05 +0000 (11:42 -0400)]
Btrfs: allocator tweaks
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Fri, 27 Apr 2007 14:08:34 +0000 (10:08 -0400)]
Btrfs: more block allocator work
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Thu, 26 Apr 2007 20:46:15 +0000 (16:46 -0400)]
Btrfs: start of block group code
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Wed, 25 Apr 2007 19:52:25 +0000 (15:52 -0400)]
Btrfs: change around extent-tree prealloc
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Tue, 24 Apr 2007 16:44:26 +0000 (12:44 -0400)]
Btrfs: fixup dirty_inode related deadlocks
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Tue, 24 Apr 2007 16:07:39 +0000 (12:07 -0400)]
Btrfs: get rid of the extent_item type field
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Tue, 24 Apr 2007 15:52:22 +0000 (11:52 -0400)]
Btrfs: add dirty_inode call
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Mon, 23 Apr 2007 23:10:49 +0000 (19:10 -0400)]
Btrfs: new subvolume oops fix
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Mon, 23 Apr 2007 21:01:05 +0000 (17:01 -0400)]
Btrfs: fix extent owner/type setting on extent tree blocks
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Sat, 21 Apr 2007 00:23:12 +0000 (20:23 -0400)]
Btrfs: add owner and type fields to the extents aand block headers
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Fri, 20 Apr 2007 17:48:57 +0000 (13:48 -0400)]
Btrfs: node balance optimizations
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Fri, 20 Apr 2007 17:16:02 +0000 (13:16 -0400)]
Btrfs: write barriers on commit, balance level before split
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Fri, 20 Apr 2007 01:01:03 +0000 (21:01 -0400)]
Btrfs: early fsync support
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Thu, 19 Apr 2007 19:36:27 +0000 (15:36 -0400)]
Btrfs: directory inode index is back
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Thu, 19 Apr 2007 17:37:44 +0000 (13:37 -0400)]
Btrfs: many file_write fixes, inline data
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Wed, 18 Apr 2007 20:15:28 +0000 (16:15 -0400)]
Btrfs: working file_write, reorganized key flags
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Tue, 17 Apr 2007 19:39:32 +0000 (15:39 -0400)]
Btrfs: rework csums and extent item ordering
Signed-off-by: Chris Mason <chris.mason@oracle.com>