diff --git a/fs/super.c b/fs/super.c index 5bab94fb7e03..a99e5281b057 100644 --- a/fs/super.c +++ b/fs/super.c @@ -1690,6 +1690,11 @@ int get_tree_bdev_flags(struct fs_context *fc, if (!error) error = fill_super(s, fc); if (error) { + /* + * return back sb_info ownership to fc to be freed by put_fs_context() + */ + fc->s_fs_info = s->s_fs_info; + s->s_fs_info = NULL; deactivate_locked_super(s); return error; }