diff options
author | Chris Mason <chris.mason@fusionio.com> | 2013-02-05 10:04:03 -0500 |
---|---|---|
committer | Chris Mason <chris.mason@fusionio.com> | 2013-02-05 10:04:03 -0500 |
commit | 0e4e02636611dbf89a2f36320a32054f9936d6cb (patch) | |
tree | 18b4ecc6c3812770b29729d7abbdc673ffd73a41 /fs/btrfs/extent-tree.c | |
parent | 1f0905ec156eec8f12cd593bc564551770319720 (diff) | |
parent | 1eafa6c73791e4f312324ddad9cbcaf6a1b6052b (diff) |
Merge branch 'for-linus' into raid56-experimental
Conflicts:
fs/btrfs/volumes.c
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
Diffstat (limited to 'fs/btrfs/extent-tree.c')
-rw-r--r-- | fs/btrfs/extent-tree.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 87b0e856b6d0..7e801ada6695 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c | |||
@@ -4061,7 +4061,7 @@ again: | |||
4061 | * We make the other tasks wait for the flush only when we can flush | 4061 | * We make the other tasks wait for the flush only when we can flush |
4062 | * all things. | 4062 | * all things. |
4063 | */ | 4063 | */ |
4064 | if (ret && flush == BTRFS_RESERVE_FLUSH_ALL) { | 4064 | if (ret && flush != BTRFS_RESERVE_NO_FLUSH) { |
4065 | flushing = true; | 4065 | flushing = true; |
4066 | space_info->flush = 1; | 4066 | space_info->flush = 1; |
4067 | } | 4067 | } |
@@ -5631,7 +5631,7 @@ static noinline int find_free_extent(struct btrfs_trans_handle *trans, | |||
5631 | int empty_cluster = 2 * 1024 * 1024; | 5631 | int empty_cluster = 2 * 1024 * 1024; |
5632 | struct btrfs_space_info *space_info; | 5632 | struct btrfs_space_info *space_info; |
5633 | int loop = 0; | 5633 | int loop = 0; |
5634 | int index = 0; | 5634 | int index = __get_raid_index(data); |
5635 | int alloc_type = (data & BTRFS_BLOCK_GROUP_DATA) ? | 5635 | int alloc_type = (data & BTRFS_BLOCK_GROUP_DATA) ? |
5636 | RESERVE_ALLOC_NO_ACCOUNT : RESERVE_ALLOC; | 5636 | RESERVE_ALLOC_NO_ACCOUNT : RESERVE_ALLOC; |
5637 | bool found_uncached_bg = false; | 5637 | bool found_uncached_bg = false; |
@@ -6867,11 +6867,13 @@ static noinline int walk_up_proc(struct btrfs_trans_handle *trans, | |||
6867 | &wc->flags[level]); | 6867 | &wc->flags[level]); |
6868 | if (ret < 0) { | 6868 | if (ret < 0) { |
6869 | btrfs_tree_unlock_rw(eb, path->locks[level]); | 6869 | btrfs_tree_unlock_rw(eb, path->locks[level]); |
6870 | path->locks[level] = 0; | ||
6870 | return ret; | 6871 | return ret; |
6871 | } | 6872 | } |
6872 | BUG_ON(wc->refs[level] == 0); | 6873 | BUG_ON(wc->refs[level] == 0); |
6873 | if (wc->refs[level] == 1) { | 6874 | if (wc->refs[level] == 1) { |
6874 | btrfs_tree_unlock_rw(eb, path->locks[level]); | 6875 | btrfs_tree_unlock_rw(eb, path->locks[level]); |
6876 | path->locks[level] = 0; | ||
6875 | return 1; | 6877 | return 1; |
6876 | } | 6878 | } |
6877 | } | 6879 | } |