[GIT PULL 1/2] Btrfs fixes

From: Chris Mason
Date: Thu Aug 09 2012 - 11:50:33 EST


Hi everyone,

This first pull is the bulk of our changes for the next rc. It is
against the 3.5 kernel so people testing the new features have a stable
point to work against. This was tested against Linus' current tree as
well.

The second pull is just one fix against 3.6-rc1 (in another email).

Linus, please grab my for-linus branch:

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

Most of these fixes are against the new send/receive code. Alexander
fixed a number of bugs in there and I found a more while backing up my
laptop. It does nightly incremental runs now about 3x faster than
rsync, so things are looking pretty good.

On top of that we have fixes for some long standing bugs in the delayed
reference code (a few more of these are still being worked on),
deadlocks and other small fixes.

Alexander Block (23) commits (+482/-419):
Btrfs: don't treat top/root directory inode as deleted/reused (+20/-1)
Btrfs: fix use of radix_tree for name_cache in send/receive (+37/-39)
Btrfs: rename backref_ctx::found_in_send_root to found_itself (+4/-4)
Btrfs: pass root instead of parent_root to iterate_inode_ref (+2/-2)
Btrfs: add correct parent to check_dirs when dir got moved (+11/-0)
Btrfs: add missing check for dir != tmp_dir to is_first_ref (+1/-1)
Btrfs: fix check for changed extent in is_extent_unchanged (+2/-2)
Btrfs: free nce and nce_head on error in name_cache_insert (+5/-1)
Btrfs: don't break in the final loop of find_extent_clone (+0/-1)
Btrfs: fix cur_ino < parent_ino case for send/receive (+146/-244)
Btrfs: add/fix comments/documentation for send/receive (+134/-6)
Btrfs: use normal return path for root == send_root case (+0/-6)
Btrfs: fix memory leak for name_cache in send/receive (+1/-0)
Btrfs: use kmalloc instead of stack for backref_ctx (+18/-11)
Btrfs: remove unused use_list from send/receive code (+0/-2)
Btrfs: remove unused tmp_path from iterate_dir_item (+0/-8)
Btrfs: add rdev to get_inode_info in send/receive (+17/-13)
Btrfs: use <= instead of < in is_extent_unchanged (+1/-1)
Btrfs: update send_progress at correct places (+20/-6)
Btrfs: ignore non-FS inodes for send/receive (+5/-0)
Btrfs: code cleanups for send/receive (+35/-48)
Btrfs: make aux field of ulist 64 bit (+21/-23)
Btrfs: remove unused code with #if 0 (+2/-0)

Josef Bacik (9) commits (+325/-215):
Btrfs: don't allocate a seperate csums array for direct reads (+19/-32)
Btrfs: do not use missing devices when showing devname (+2/-0)
Btrfs: fix enospc problems when deleting a subvol (+1/-1)
Btrfs: increase the size of the free space cache (+7/-8)
Btrfs: lock extents as we map them in DIO (+127/-129)
Btrfs: allow delayed refs to be merged (+142/-27)
Btrfs: do not strdup non existent strings (+5/-3)
Btrfs: barrier before waitqueue_active (+10/-12)
Btrfs: use a slab for btrfs_dio_private (+12/-3)

Dan Carpenter (4) commits (+16/-8):
Btrfs: unlock on error in btrfs_delalloc_reserve_metadata() (+3/-1)
Btrfs: fix some error codes in btrfs_qgroup_inherit() (+6/-2)
Btrfs: fix some endian bugs handling the root times (+4/-4)
Btrfs: checking for NULL instead of IS_ERR (+3/-1)

Stefan Behrens (3) commits (+8/-36):
Btrfs: fix a misplaced address operator in a condition (+1/-1)
Btrfs: remove superblock writing after fatal error (+5/-33)
Btrfs: fix that error value is changed by mistake (+2/-2)

Chris Mason (2) commits (+40/-15):
Btrfs: fix btrfs send for inline items and compression (+37/-15)
Btrfs: don't run __tree_mod_log_free_eb on leaves (+3/-0)

Fengguang Wu (2) commits (+4/-6):
btrfs: fix second lock in btrfs_delete_delayed_items() (+3/-2)
btrfs: Use PTR_RET in btrfs_resume_balance_async() (+1/-4)

Arne Jansen (2) commits (+38/-73):
Btrfs: fix deadlock in wait_for_more_refs (+21/-73)
Btrfs: fix race in run_clustered_refs (+17/-0)

Miao Xie (1) commits (+1/-0):
Btrfs: fix wrong mtime and ctime when creating snapshots

Total: (46) commits

fs/btrfs/backref.c | 12 +-
fs/btrfs/compression.c | 1 +
fs/btrfs/ctree.c | 14 +-
fs/btrfs/ctree.h | 3 +-
fs/btrfs/delayed-inode.c | 12 +-
fs/btrfs/delayed-ref.c | 163 +++++++--
fs/btrfs/delayed-ref.h | 4 +
fs/btrfs/disk-io.c | 45 +--
fs/btrfs/disk-io.h | 2 +-
fs/btrfs/extent-tree.c | 123 +++----
fs/btrfs/extent_io.c | 1 -
fs/btrfs/file-item.c | 4 +-
fs/btrfs/inode.c | 318 ++++++++---------
fs/btrfs/ioctl.c | 2 +-
fs/btrfs/locking.c | 2 +-
fs/btrfs/qgroup.c | 32 +-
fs/btrfs/root-tree.c | 4 +-
fs/btrfs/send.c | 895 ++++++++++++++++++++++++++---------------------
fs/btrfs/super.c | 2 +
fs/btrfs/transaction.c | 3 +-
fs/btrfs/ulist.c | 7 +-
fs/btrfs/ulist.h | 9 +-
fs/btrfs/volumes.c | 16 +-
23 files changed, 908 insertions(+), 766 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/