mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-09 06:41:06 -04:00
bcachefs: Fix errors early in the fs init process
At some point bch2_fs_alloc() was changed to always call bch2_fs_free() in the error path, which means we need c->cl to always be initialized. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
committed by
Kent Overstreet
parent
922ae9f455
commit
505b7a4c28
@@ -654,6 +654,14 @@ static struct bch_fs *bch2_fs_alloc(struct bch_sb *sb, struct bch_opts opts)
|
||||
|
||||
__module_get(THIS_MODULE);
|
||||
|
||||
closure_init(&c->cl, NULL);
|
||||
|
||||
c->kobj.kset = bcachefs_kset;
|
||||
kobject_init(&c->kobj, &bch2_fs_ktype);
|
||||
kobject_init(&c->internal, &bch2_fs_internal_ktype);
|
||||
kobject_init(&c->opts_dir, &bch2_fs_opts_dir_ktype);
|
||||
kobject_init(&c->time_stats, &bch2_fs_time_stats_ktype);
|
||||
|
||||
c->minor = -1;
|
||||
c->disk_sb.fs_sb = true;
|
||||
|
||||
@@ -785,18 +793,6 @@ static struct bch_fs *bch2_fs_alloc(struct bch_sb *sb, struct bch_opts opts)
|
||||
bch2_dev_alloc(c, i))
|
||||
goto err;
|
||||
|
||||
/*
|
||||
* Now that all allocations have succeeded, init various refcounty
|
||||
* things that let us shutdown:
|
||||
*/
|
||||
closure_init(&c->cl, NULL);
|
||||
|
||||
c->kobj.kset = bcachefs_kset;
|
||||
kobject_init(&c->kobj, &bch2_fs_ktype);
|
||||
kobject_init(&c->internal, &bch2_fs_internal_ktype);
|
||||
kobject_init(&c->opts_dir, &bch2_fs_opts_dir_ktype);
|
||||
kobject_init(&c->time_stats, &bch2_fs_time_stats_ktype);
|
||||
|
||||
mutex_lock(&bch_fs_list_lock);
|
||||
err = bch2_fs_online(c);
|
||||
mutex_unlock(&bch_fs_list_lock);
|
||||
|
||||
Reference in New Issue
Block a user