btrfs: make free_fs_info() call ->kill_sb() unconditional
... and don't bother with it after btrfs_fill_super() failure -
->kill_sb() (unlike ->put_super()) will be called even if we
have not got non-NULL ->s_root.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index 8901b6c..f628a6a 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -946,7 +946,6 @@
error = btrfs_fill_super(s, fs_devices, data,
flags & MS_SILENT ? 1 : 0);
if (error) {
- free_fs_info(fs_info);
deactivate_locked_super(s);
return ERR_PTR(error);
}
@@ -1215,12 +1214,9 @@
static void btrfs_kill_super(struct super_block *sb)
{
- struct btrfs_fs_info *fs_info = NULL;
- if (sb->s_root)
- fs_info = btrfs_sb(sb)->fs_info;
+ struct btrfs_fs_info *fs_info = btrfs_sb(sb)->fs_info;
kill_anon_super(sb);
- if (fs_info)
- free_fs_info(fs_info);
+ free_fs_info(fs_info);
}
static struct file_system_type btrfs_fs_type = {