mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-14 09:09:56 +00:00
btrfs: move free space cachep's out of ctree.h
This is local to the free-space-cache.c code, remove it from ctree.h and inode.c, create new init/exit functions for the cachep, and move it locally to free-space-cache.c. Reviewed-by: Qu Wenruo <wqu@suse.com> Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> 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
226463d7b1
commit
eda517fd0c
@ -41,8 +41,6 @@ struct btrfs_pending_snapshot;
|
||||
struct btrfs_delayed_ref_root;
|
||||
struct btrfs_space_info;
|
||||
struct btrfs_block_group;
|
||||
extern struct kmem_cache *btrfs_free_space_cachep;
|
||||
extern struct kmem_cache *btrfs_free_space_bitmap_cachep;
|
||||
struct btrfs_ordered_sum;
|
||||
struct btrfs_ref;
|
||||
struct btrfs_bio;
|
||||
|
@ -29,6 +29,9 @@
|
||||
#define MAX_CACHE_BYTES_PER_GIG SZ_64K
|
||||
#define FORCE_EXTENT_THRESHOLD SZ_1M
|
||||
|
||||
static struct kmem_cache *btrfs_free_space_cachep;
|
||||
static struct kmem_cache *btrfs_free_space_bitmap_cachep;
|
||||
|
||||
struct btrfs_trim_range {
|
||||
u64 start;
|
||||
u64 bytes;
|
||||
@ -4132,6 +4135,31 @@ out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
int __init btrfs_free_space_init(void)
|
||||
{
|
||||
btrfs_free_space_cachep = kmem_cache_create("btrfs_free_space",
|
||||
sizeof(struct btrfs_free_space), 0,
|
||||
SLAB_MEM_SPREAD, NULL);
|
||||
if (!btrfs_free_space_cachep)
|
||||
return -ENOMEM;
|
||||
|
||||
btrfs_free_space_bitmap_cachep = kmem_cache_create("btrfs_free_space_bitmap",
|
||||
PAGE_SIZE, PAGE_SIZE,
|
||||
SLAB_MEM_SPREAD, NULL);
|
||||
if (!btrfs_free_space_bitmap_cachep) {
|
||||
kmem_cache_destroy(btrfs_free_space_cachep);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void __cold btrfs_free_space_exit(void)
|
||||
{
|
||||
kmem_cache_destroy(btrfs_free_space_cachep);
|
||||
kmem_cache_destroy(btrfs_free_space_bitmap_cachep);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
|
||||
/*
|
||||
* Use this if you need to make a bitmap or extent entry specifically, it
|
||||
|
@ -88,6 +88,8 @@ struct btrfs_io_ctl {
|
||||
int bitmaps;
|
||||
};
|
||||
|
||||
int __init btrfs_free_space_init(void);
|
||||
void __cold btrfs_free_space_exit(void);
|
||||
struct inode *lookup_free_space_inode(struct btrfs_block_group *block_group,
|
||||
struct btrfs_path *path);
|
||||
int create_free_space_inode(struct btrfs_trans_handle *trans,
|
||||
|
@ -107,8 +107,6 @@ static const struct address_space_operations btrfs_aops;
|
||||
static const struct file_operations btrfs_dir_file_operations;
|
||||
|
||||
static struct kmem_cache *btrfs_inode_cachep;
|
||||
struct kmem_cache *btrfs_free_space_cachep;
|
||||
struct kmem_cache *btrfs_free_space_bitmap_cachep;
|
||||
|
||||
static int btrfs_setsize(struct inode *inode, struct iattr *attr);
|
||||
static int btrfs_truncate(struct inode *inode, bool skip_writeback);
|
||||
@ -8924,8 +8922,6 @@ void __cold btrfs_destroy_cachep(void)
|
||||
rcu_barrier();
|
||||
bioset_exit(&btrfs_dio_bioset);
|
||||
kmem_cache_destroy(btrfs_inode_cachep);
|
||||
kmem_cache_destroy(btrfs_free_space_cachep);
|
||||
kmem_cache_destroy(btrfs_free_space_bitmap_cachep);
|
||||
}
|
||||
|
||||
int __init btrfs_init_cachep(void)
|
||||
@ -8937,18 +8933,6 @@ int __init btrfs_init_cachep(void)
|
||||
if (!btrfs_inode_cachep)
|
||||
goto fail;
|
||||
|
||||
btrfs_free_space_cachep = kmem_cache_create("btrfs_free_space",
|
||||
sizeof(struct btrfs_free_space), 0,
|
||||
SLAB_MEM_SPREAD, NULL);
|
||||
if (!btrfs_free_space_cachep)
|
||||
goto fail;
|
||||
|
||||
btrfs_free_space_bitmap_cachep = kmem_cache_create("btrfs_free_space_bitmap",
|
||||
PAGE_SIZE, PAGE_SIZE,
|
||||
SLAB_MEM_SPREAD, NULL);
|
||||
if (!btrfs_free_space_bitmap_cachep)
|
||||
goto fail;
|
||||
|
||||
if (bioset_init(&btrfs_dio_bioset, BIO_POOL_SIZE,
|
||||
offsetof(struct btrfs_dio_private, bio),
|
||||
BIOSET_NEED_BVECS))
|
||||
|
@ -2747,10 +2747,14 @@ static int __init init_btrfs_fs(void)
|
||||
if (err)
|
||||
goto free_transaction;
|
||||
|
||||
err = extent_state_init_cachep();
|
||||
err = btrfs_free_space_init();
|
||||
if (err)
|
||||
goto free_ctree;
|
||||
|
||||
err = extent_state_init_cachep();
|
||||
if (err)
|
||||
goto free_free_space;
|
||||
|
||||
err = extent_buffer_init_cachep();
|
||||
if (err)
|
||||
goto free_extent_cachep;
|
||||
@ -2819,6 +2823,8 @@ free_eb_cachep:
|
||||
extent_buffer_free_cachep();
|
||||
free_extent_cachep:
|
||||
extent_state_free_cachep();
|
||||
free_free_space:
|
||||
btrfs_free_space_exit();
|
||||
free_ctree:
|
||||
btrfs_ctree_exit();
|
||||
free_transaction:
|
||||
@ -2834,6 +2840,7 @@ free_compress:
|
||||
|
||||
static void __exit exit_btrfs_fs(void)
|
||||
{
|
||||
btrfs_free_space_exit();
|
||||
btrfs_ctree_exit();
|
||||
btrfs_transaction_exit();
|
||||
btrfs_destroy_cachep();
|
||||
|
Loading…
x
Reference in New Issue
Block a user