unfuck sysfs_mount()
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 14 May 2018 04:03:34 +0000 (00:03 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 21 May 2018 18:30:09 +0000 (14:30 -0400)
commit7b745a4e4051e1bbce40e0b1c2cf636c70583aa4
treec5fd8a796d75053bccf60ee4376b4872d10e7918
parent82382acec0c97b91830fff7130d0acce4ac4f3f3
unfuck sysfs_mount()

new_sb is left uninitialized in case of early failures in kernfs_mount_ns(),
and while IS_ERR(root) is true in all such cases, using IS_ERR(root) || !new_sb
is not a solution - IS_ERR(root) is true in some cases when new_sb is true.

Make sure new_sb is initialized (and matches the reality) in all cases and
fix the condition for dropping kobj reference - we want it done precisely
in those situations where the reference has not been transferred into a new
super_block instance.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/sysfs/mount.c