Btrfs: rework error handling in btrfs_mount()
authorIlya Dryomov <idryomov@gmail.com>
Wed, 9 Nov 2011 12:41:22 +0000 (14:41 +0200)
committerIlya Dryomov <idryomov@gmail.com>
Wed, 9 Nov 2011 20:53:39 +0000 (22:53 +0200)
commit04d21a244fdf79d0ac892eaaa9a46b682467277c
treeda0cadb86766bbf34f30c4b3efddde01e3d6d677
parent586e46e2813c589d26258a599580421fb6fb576b
Btrfs: rework error handling in btrfs_mount()

Commits 6c41761f and 45ea6095 introduced the possibility of NULL pointer
dereference on error paths, also we would leave all devices busy and
leak fs_info with all sub-structures on error when trying to mount an
already mounted fs to a different directory.

Fix this by doing all allocations before trying to open any of the
devices, adjust error path for mount-already-mounted-fs case.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
fs/btrfs/super.c