Skip to content

Commit

Permalink
btrfs: add fs context handling functions
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Josef Bacik authored and David Sterba committed Dec 15, 2023
1 parent 17b3612 commit 0f85e24
Showing 1 changed file with 35 additions and 1 deletion.
36 changes: 35 additions & 1 deletion fs/btrfs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down

0 comments on commit 0f85e24

Please sign in to comment.