mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-07 22:08:33 -04:00
btrfs: add fs context handling functions
We are going to use the fs context to hold the mount options, so allocate the btrfs_fs_context when we're asked to init the fs context, and free it in the free callback. Reviewed-by: Christian Brauner <brauner@kernel.org> 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:
committed by
David Sterba
parent
17b3612022
commit
0f85e244df
@@ -2642,10 +2642,44 @@ static void btrfs_kill_super(struct super_block *sb)
|
||||
btrfs_free_fs_info(fs_info);
|
||||
}
|
||||
|
||||
static const struct fs_context_operations btrfs_fs_context_ops __maybe_unused = {
|
||||
static void btrfs_free_fs_context(struct fs_context *fc)
|
||||
{
|
||||
struct btrfs_fs_context *ctx = fc->fs_private;
|
||||
|
||||
if (!ctx)
|
||||
return;
|
||||
|
||||
kfree(ctx->subvol_name);
|
||||
kfree(ctx);
|
||||
}
|
||||
|
||||
static const struct fs_context_operations btrfs_fs_context_ops = {
|
||||
.parse_param = btrfs_parse_param,
|
||||
.free = btrfs_free_fs_context,
|
||||
};
|
||||
|
||||
static int __maybe_unused btrfs_init_fs_context(struct fs_context *fc)
|
||||
{
|
||||
struct btrfs_fs_context *ctx;
|
||||
|
||||
ctx = kzalloc(sizeof(struct btrfs_fs_context), GFP_KERNEL);
|
||||
if (!ctx)
|
||||
return -ENOMEM;
|
||||
|
||||
ctx->thread_pool_size = min_t(unsigned long, num_online_cpus() + 2, 8);
|
||||
ctx->max_inline = BTRFS_DEFAULT_MAX_INLINE;
|
||||
ctx->commit_interval = BTRFS_DEFAULT_COMMIT_INTERVAL;
|
||||
ctx->subvol_objectid = BTRFS_FS_TREE_OBJECTID;
|
||||
#ifndef CONFIG_BTRFS_FS_POSIX_ACL
|
||||
ctx->noacl = true;
|
||||
#endif
|
||||
|
||||
fc->fs_private = ctx;
|
||||
fc->ops = &btrfs_fs_context_ops;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct file_system_type btrfs_fs_type = {
|
||||
.owner = THIS_MODULE,
|
||||
.name = "btrfs",
|
||||
|
||||
Reference in New Issue
Block a user