From: Al Viro Date: Fri, 17 Jun 2011 13:50:44 +0000 (-0400) Subject: cifs: more breakage on mount failures X-Git-Tag: upstream/snapshot3+hdmi~9801^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fa18f1bdce898f0efd0c8639c901d826d01be04f;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git 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: Pavel Shilovsky Reviewed-by: Jeff Layton Signed-off-by: Al Viro --- diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c index ba2b2da..234e9d0 100644 --- a/fs/cifs/cifsfs.c +++ b/fs/cifs/cifsfs.c @@ -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: