mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
btrfs: separate out the extent io init function
We are moving extent_io_tree into it's on file, so separate out the extent_state init stuff from extent_io_tree_init(). Signed-off-by: Josef Bacik <josef@toxicpanda.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
33ca832fef
commit
6f0d04f8e7
@ -200,19 +200,23 @@ static int __must_check flush_write_bio(struct extent_page_data *epd)
|
||||
return ret;
|
||||
}
|
||||
|
||||
int __init extent_io_init(void)
|
||||
int __init extent_state_cache_init(void)
|
||||
{
|
||||
extent_state_cache = kmem_cache_create("btrfs_extent_state",
|
||||
sizeof(struct extent_state), 0,
|
||||
SLAB_MEM_SPREAD, NULL);
|
||||
if (!extent_state_cache)
|
||||
return -ENOMEM;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int __init extent_io_init(void)
|
||||
{
|
||||
extent_buffer_cache = kmem_cache_create("btrfs_extent_buffer",
|
||||
sizeof(struct extent_buffer), 0,
|
||||
SLAB_MEM_SPREAD, NULL);
|
||||
if (!extent_buffer_cache)
|
||||
goto free_state_cache;
|
||||
return -ENOMEM;
|
||||
|
||||
if (bioset_init(&btrfs_bioset, BIO_POOL_SIZE,
|
||||
offsetof(struct btrfs_io_bio, bio),
|
||||
@ -230,24 +234,24 @@ free_bioset:
|
||||
free_buffer_cache:
|
||||
kmem_cache_destroy(extent_buffer_cache);
|
||||
extent_buffer_cache = NULL;
|
||||
|
||||
free_state_cache:
|
||||
kmem_cache_destroy(extent_state_cache);
|
||||
extent_state_cache = NULL;
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
void __cold extent_state_cache_exit(void)
|
||||
{
|
||||
btrfs_extent_state_leak_debug_check();
|
||||
kmem_cache_destroy(extent_state_cache);
|
||||
}
|
||||
|
||||
void __cold extent_io_exit(void)
|
||||
{
|
||||
btrfs_extent_buffer_leak_debug_check();
|
||||
btrfs_extent_state_leak_debug_check();
|
||||
|
||||
/*
|
||||
* Make sure all delayed rcu free are flushed before we
|
||||
* destroy caches.
|
||||
*/
|
||||
rcu_barrier();
|
||||
kmem_cache_destroy(extent_state_cache);
|
||||
kmem_cache_destroy(extent_buffer_cache);
|
||||
bioset_exit(&btrfs_bioset);
|
||||
}
|
||||
|
@ -556,4 +556,6 @@ bool find_lock_delalloc_range(struct inode *inode,
|
||||
struct extent_buffer *alloc_test_extent_buffer(struct btrfs_fs_info *fs_info,
|
||||
u64 start);
|
||||
|
||||
int __init extent_state_cache_init(void);
|
||||
void __cold extent_state_cache_exit(void);
|
||||
#endif
|
||||
|
@ -2360,10 +2360,14 @@ static int __init init_btrfs_fs(void)
|
||||
if (err)
|
||||
goto free_cachep;
|
||||
|
||||
err = extent_map_init();
|
||||
err = extent_state_cache_init();
|
||||
if (err)
|
||||
goto free_extent_io;
|
||||
|
||||
err = extent_map_init();
|
||||
if (err)
|
||||
goto free_extent_state_cache;
|
||||
|
||||
err = ordered_data_init();
|
||||
if (err)
|
||||
goto free_extent_map;
|
||||
@ -2422,6 +2426,8 @@ free_ordered_data:
|
||||
ordered_data_exit();
|
||||
free_extent_map:
|
||||
extent_map_exit();
|
||||
free_extent_state_cache:
|
||||
extent_state_cache_exit();
|
||||
free_extent_io:
|
||||
extent_io_exit();
|
||||
free_cachep:
|
||||
@ -2442,6 +2448,7 @@ static void __exit exit_btrfs_fs(void)
|
||||
btrfs_prelim_ref_exit();
|
||||
ordered_data_exit();
|
||||
extent_map_exit();
|
||||
extent_state_cache_exit();
|
||||
extent_io_exit();
|
||||
btrfs_interface_exit();
|
||||
btrfs_end_io_wq_exit();
|
||||
|
Loading…
Reference in New Issue
Block a user