[GIT PULL] Btrfs updates for 2.6.30-rc

From: Chris Mason
Date: Tue Mar 31 2009 - 16:48:45 EST


Hello everyone,

Here is the first round of btrfs fixes for the next merge window. The
majority of this code is to reduce btrfs stack usage by doing extent
tree updates at a different time. It generally makes btrfs usable on 4k
stacks, although more stack reduction work will be done later on.

The second commit from the bottom adds extra ordering for renames and
truncates to bring back the ext3 flavor everyone has been missing. I
tried pretty hard to keep performance impact low, most workloads will
never notice it (including those that fsync).

Linus, please pull the master branch from:

git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable.git

Chris Mason (18):
Btrfs: don't preallocate metadata blocks during btrfs_search_slot
Btrfs: do extent allocation and reference count updates in the background
Btrfs: reduce stack usage in some crucial tree balancing functions
Btrfs: try to cleanup delayed refs while freeing extents
Btrfs: process the delayed reference queue in clusters
Btrfs: reduce stalls during transaction commit
Btrfs: reduce stack in cow_file_range
Btrfs: Check for a blocking lock before taking the spin
Btrfs: Only let very young transactions grow during commit
Btrfs: leave btree locks spinning more often
Btrfs: readahead checksums during btrfs_finish_ordered_io
Btrfs: limit balancing work while flushing delayed refs
Btrfs: Make sure i_nlink doesn't hit zero too soon during log replay
Btrfs: tree logging unlink/rename fixes
Btrfs: optimize fsyncs on old files
Btrfs: make sure btrfs_update_delayed_ref doesn't increase ref_mod
Btrfs: add extra flushing for renames and truncates
Btrfs: try to free metadata pages when we free btree blocks

fs/btrfs/Makefile | 2
fs/btrfs/btrfs_inode.h | 31
fs/btrfs/ctree.c | 588 +++++++++-------
fs/btrfs/ctree.h | 69 +
fs/btrfs/delayed-ref.c | 669 +++++++++++++++++++
fs/btrfs/delayed-ref.h | 193 +++++
fs/btrfs/dir-item.c | 3
fs/btrfs/disk-io.c | 81 +-
fs/btrfs/disk-io.h | 1
fs/btrfs/extent-tree.c | 1674 +++++++++++++++---------------------------------
fs/btrfs/extent_io.c | 51 -
fs/btrfs/extent_io.h | 3
fs/btrfs/file-item.c | 7
fs/btrfs/file.c | 50 +
fs/btrfs/inode-item.c | 3
fs/btrfs/inode.c | 194 ++++-
fs/btrfs/locking.c | 21
fs/btrfs/ordered-data.c | 118 +++
fs/btrfs/ordered-data.h | 4
fs/btrfs/transaction.c | 151 +++-
fs/btrfs/transaction.h | 8
fs/btrfs/tree-defrag.c | 2
fs/btrfs/tree-log.c | 444 ++++++++++--
fs/btrfs/tree-log.h | 17
24 files changed, 2762 insertions(+), 1622 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/