Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fa18f1bd authored by Al Viro's avatar Al Viro
Browse files

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
Loading
Loading
Loading
Loading
+4 −7
Original line number Diff line number Diff line
@@ -710,19 +710,16 @@ cifs_do_mount(struct file_system_type *fs_type,

	sb->s_flags |= MS_ACTIVE;

out_shared:
	root = cifs_get_root(volume_info, sb);
	if (root == NULL)
	if (root == NULL) {
		root = ERR_PTR(-EINVAL); /* XXX */
		goto out_super;
	}

	cFYI(1, "dentry root is: %p", root);
	goto out;

out_shared:
	root = cifs_get_root(volume_info, sb);
	if (root)
		cFYI(1, "dentry root is: %p", root);
	goto out;

out_super:
	deactivate_locked_super(sb);
out: