From: Al Viro Date: Thu, 17 Nov 2011 06:46:50 +0000 (-0500) Subject: btrfs: make free_fs_info() call ->kill_sb() unconditional X-Git-Tag: v3.3-rc1~25^2~3 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=d22ca7de770e2a683eac000ba4db5a95e2f4c969;p=karo-tx-linux.git 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 --- diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index 8901b6c85260..f628a6a79ca6 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c @@ -946,7 +946,6 @@ static struct dentry *btrfs_mount(struct file_system_type *fs_type, int flags, 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 int btrfs_statfs(struct dentry *dentry, struct kstatfs *buf) 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 = {