[GIT PULL] Btrfs updates for 2.6.29-rc

Chris Mason
2009-02-06T16:22:57Z

Hello everyone,

The current btrfs unstable tree should be ready for 2.6.29-rc:

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

We've been busy working on cleanups and improvements based on the
feedback for Btrfs. There are still lots of cleanups left to do,
especially the ones pointed out by Andrew.

Some of them I've been holding on to as starter tasks for people that
are interested in the project.

The current btrfs unstable tree also has a number of fixes hit by
testers and by the Fedora alpha integration. These include selinux
support, an oops in the compression code, and a few different IO stalls.

There are two big performance related changes in the tree. I got rid of
the adaptive mutex implementation and switched to a lock that explicitly
switches between a spinlock and a waitqueue. This is faster and it
allows us to pick off the blocking lock points one by one over time in a
controlled fashion.

The second big performance fix deals with snapshot deletion. It makes
progress much more effectively and is able to keep up with bigger
workloads. This is important because every transaction ends up deleting
a snapshot.

There wasn't much code involved in the snapshot deletion improvements,
it is basically just sorting the block pointers before updating their
reference counts, and working on leaves in bulk instead of one by one.

Here's the shortlog:

Chris Ball (1):
Btrfs: Handle SGID bit when creating inodes

Chris Mason (14):
Btrfs: Catch missed bios in the async bio submission thread
Btrfs: async threads should try harder to find work
Btrfs: sort references by byte number during btrfs_inc_ref
Btrfs: disable leak debugging checks in extent_io.c
Btrfs: hash_lock is no longer needed
Btrfs: Change btree locking to use explicit blocking points
Btrfs: Make btrfs_drop_snapshot work in larger and more efficient chunks
Btrfs: Don't try to compress pages past i_size
Btrfs: Change btrfs_truncate_inode_items to stop when it hits the inode
Btrfs: change btrfs_del_leaf to drop locks earlier
Btrfs: fix btrfs_unlock_up_safe to walk the entire path
Btrfs: Only prep for btree deletion balances when nodes are mostly empty
Btrfs: don't return congestion in write_cache_pages as often
Btrfs: Fix memory leak in cache_drop_leaf_ref

Christian Hesse (1):
Btrfs: make btrfs acls selectable

Jim Owens (1):
Btrfs: selinux support

Josef Bacik (1):
Btrfs: join the transaction in __btrfs_setxattr