diff options
author | Chris Mason <chris.mason@oracle.com> | 2012-05-31 16:50:28 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2012-05-31 16:49:53 -0400 |
commit | 1e20932a23578bb1ec59107843574e259b96193f (patch) | |
tree | 844ae54293c4414fc4c232a36d0e4d4939dc35aa /fs/btrfs/disk-io.c | |
parent | cfc442b69696b593cb442f09997dcb4cb5748171 (diff) | |
parent | c31931088fd6cf953bd0868a2647b6c3928e6c96 (diff) |
Merge branch 'for-chris' of git://git.jan-o-sch.net/btrfs-unstable into for-linus
Conflicts:
fs/btrfs/ulist.h
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/disk-io.c')
-rw-r--r-- | fs/btrfs/disk-io.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index b0d49e21b0b1..b99d5127ba18 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c | |||
@@ -1252,7 +1252,7 @@ static struct btrfs_root *alloc_log_tree(struct btrfs_trans_handle *trans, | |||
1252 | 1252 | ||
1253 | leaf = btrfs_alloc_free_block(trans, root, root->leafsize, 0, | 1253 | leaf = btrfs_alloc_free_block(trans, root, root->leafsize, 0, |
1254 | BTRFS_TREE_LOG_OBJECTID, NULL, | 1254 | BTRFS_TREE_LOG_OBJECTID, NULL, |
1255 | 0, 0, 0, 0); | 1255 | 0, 0, 0); |
1256 | if (IS_ERR(leaf)) { | 1256 | if (IS_ERR(leaf)) { |
1257 | kfree(root); | 1257 | kfree(root); |
1258 | return ERR_CAST(leaf); | 1258 | return ERR_CAST(leaf); |
@@ -1914,11 +1914,14 @@ int open_ctree(struct super_block *sb, | |||
1914 | spin_lock_init(&fs_info->delayed_iput_lock); | 1914 | spin_lock_init(&fs_info->delayed_iput_lock); |
1915 | spin_lock_init(&fs_info->defrag_inodes_lock); | 1915 | spin_lock_init(&fs_info->defrag_inodes_lock); |
1916 | spin_lock_init(&fs_info->free_chunk_lock); | 1916 | spin_lock_init(&fs_info->free_chunk_lock); |
1917 | spin_lock_init(&fs_info->tree_mod_seq_lock); | ||
1918 | rwlock_init(&fs_info->tree_mod_log_lock); | ||
1917 | mutex_init(&fs_info->reloc_mutex); | 1919 | mutex_init(&fs_info->reloc_mutex); |
1918 | 1920 | ||
1919 | init_completion(&fs_info->kobj_unregister); | 1921 | init_completion(&fs_info->kobj_unregister); |
1920 | INIT_LIST_HEAD(&fs_info->dirty_cowonly_roots); | 1922 | INIT_LIST_HEAD(&fs_info->dirty_cowonly_roots); |
1921 | INIT_LIST_HEAD(&fs_info->space_info); | 1923 | INIT_LIST_HEAD(&fs_info->space_info); |
1924 | INIT_LIST_HEAD(&fs_info->tree_mod_seq_list); | ||
1922 | btrfs_mapping_init(&fs_info->mapping_tree); | 1925 | btrfs_mapping_init(&fs_info->mapping_tree); |
1923 | btrfs_init_block_rsv(&fs_info->global_block_rsv); | 1926 | btrfs_init_block_rsv(&fs_info->global_block_rsv); |
1924 | btrfs_init_block_rsv(&fs_info->delalloc_block_rsv); | 1927 | btrfs_init_block_rsv(&fs_info->delalloc_block_rsv); |
@@ -1931,12 +1934,14 @@ int open_ctree(struct super_block *sb, | |||
1931 | atomic_set(&fs_info->async_submit_draining, 0); | 1934 | atomic_set(&fs_info->async_submit_draining, 0); |
1932 | atomic_set(&fs_info->nr_async_bios, 0); | 1935 | atomic_set(&fs_info->nr_async_bios, 0); |
1933 | atomic_set(&fs_info->defrag_running, 0); | 1936 | atomic_set(&fs_info->defrag_running, 0); |
1937 | atomic_set(&fs_info->tree_mod_seq, 0); | ||
1934 | fs_info->sb = sb; | 1938 | fs_info->sb = sb; |
1935 | fs_info->max_inline = 8192 * 1024; | 1939 | fs_info->max_inline = 8192 * 1024; |
1936 | fs_info->metadata_ratio = 0; | 1940 | fs_info->metadata_ratio = 0; |
1937 | fs_info->defrag_inodes = RB_ROOT; | 1941 | fs_info->defrag_inodes = RB_ROOT; |
1938 | fs_info->trans_no_join = 0; | 1942 | fs_info->trans_no_join = 0; |
1939 | fs_info->free_chunk_space = 0; | 1943 | fs_info->free_chunk_space = 0; |
1944 | fs_info->tree_mod_log = RB_ROOT; | ||
1940 | 1945 | ||
1941 | /* readahead state */ | 1946 | /* readahead state */ |
1942 | INIT_RADIX_TREE(&fs_info->reada_tree, GFP_NOFS & ~__GFP_WAIT); | 1947 | INIT_RADIX_TREE(&fs_info->reada_tree, GFP_NOFS & ~__GFP_WAIT); |