diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index 2af14d4..4004bc6 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -104,8 +104,7 @@
 }
 
 static int
-cifs_read_super(struct super_block *sb, struct smb_vol *volume_info,
-		const char *devname, int silent)
+cifs_read_super(struct super_block *sb)
 {
 	struct inode *inode;
 	struct cifs_sb_info *cifs_sb;
@@ -113,14 +112,6 @@
 
 	cifs_sb = CIFS_SB(sb);
 
-	rc = cifs_mount(cifs_sb, volume_info);
-
-	if (rc) {
-		if (!silent)
-			cERROR(1, "cifs_mount failed w/return code = %d", rc);
-		return rc;
-	}
-
 	if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_POSIXACL)
 		sb->s_flags |= MS_POSIXACL;
 
@@ -692,6 +683,17 @@
 
 	cifs_setup_cifs_sb(volume_info, cifs_sb);
 
+	rc = cifs_mount(cifs_sb, volume_info);
+	if (rc) {
+		if (!(flags & MS_SILENT))
+			cERROR(1, "cifs_mount failed w/return code = %d", rc);
+		root = ERR_PTR(rc);
+		unload_nls(volume_info->local_nls);
+		kfree(cifs_sb->mountdata);
+		kfree(cifs_sb);
+		goto out;
+	}
+
 	mnt_data.vol = volume_info;
 	mnt_data.cifs_sb = cifs_sb;
 	mnt_data.flags = flags;
@@ -699,11 +701,13 @@
 	sb = sget(fs_type, cifs_match_super, set_anon_super, &mnt_data);
 	if (IS_ERR(sb)) {
 		root = ERR_CAST(sb);
+		cifs_umount(cifs_sb);
 		goto out_cifs_sb;
 	}
 
 	if (sb->s_fs_info) {
 		cFYI(1, "Use existing superblock");
+		cifs_umount(cifs_sb);
 		kfree(cifs_sb->mountdata);
 		unload_nls(cifs_sb->local_nls);
 		kfree(cifs_sb);
@@ -715,8 +719,7 @@
 	sb->s_flags |= MS_NODIRATIME | MS_NOATIME;
 	sb->s_fs_info = cifs_sb;
 
-	rc = cifs_read_super(sb, volume_info, dev_name,
-			     flags & MS_SILENT ? 1 : 0);
+	rc = cifs_read_super(sb);
 	if (rc) {
 		root = ERR_PTR(rc);
 		goto out_super;
