Commit fa18f1bd authored by Al Viro's avatar Al Viro

cifs: more breakage on mount failures

if cifs_get_root() fails, we end up with ->mount() returning NULL,
which is not what callers expect.  Moreover, in case of superblock
reuse we end up leaking a superblock reference...
Acked-by: default avatarPavel Shilovsky <piastryyy@gmail.com>
Reviewed-by: default avatarJeff Layton <jlayton@redhat.com>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent ee01a14d
...@@ -710,19 +710,16 @@ cifs_do_mount(struct file_system_type *fs_type, ...@@ -710,19 +710,16 @@ cifs_do_mount(struct file_system_type *fs_type,
sb->s_flags |= MS_ACTIVE; sb->s_flags |= MS_ACTIVE;
out_shared:
root = cifs_get_root(volume_info, sb); root = cifs_get_root(volume_info, sb);
if (root == NULL) if (root == NULL) {
root = ERR_PTR(-EINVAL); /* XXX */
goto out_super; goto out_super;
}
cFYI(1, "dentry root is: %p", root); cFYI(1, "dentry root is: %p", root);
goto out; goto out;
out_shared:
root = cifs_get_root(volume_info, sb);
if (root)
cFYI(1, "dentry root is: %p", root);
goto out;
out_super: out_super:
deactivate_locked_super(sb); deactivate_locked_super(sb);
out: out:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment