]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
Fix regression which breaks DFS mounting
authorSachin Prabhu <sprabhu@redhat.com>
Tue, 6 Sep 2016 12:22:34 +0000 (13:22 +0100)
committerSomasundaram Krishnasamy <somasundaram.krishnasamy@oracle.com>
Tue, 8 Aug 2017 15:57:37 +0000 (08:57 -0700)
Orabug: 26591404

Patch a6b5058 results in -EREMOTE returned by is_path_accessible() in
cifs_mount() to be ignored which breaks DFS mounting.

Signed-off-by: Sachin Prabhu <sprabhu@redhat.com>
Reviewed-by: Aurelien Aptel <aaptel@suse.com>
CC: Stable <stable@vger.kernel.org>
Signed-off-by: Steve French <smfrench@gmail.com>
(cherry picked from commit d171356ff11ab1825e456dfb979755e01b3c54a1)
Signed-off-by: Somasundaram Krishnasamy <somasundaram.krishnasamy@oracle.com>
Reviewed-by: Jack Vogel <jack.vogel@oracle.com>
fs/cifs/connect.c

index 7ab953fd9fb6fe7bd081f1ee6e2335f6791faa77..4fcd6f1b34848c26b771db4836241f527b997cbd 100644 (file)
@@ -3599,14 +3599,16 @@ remote_path_check:
                        goto mount_fail_check;
                }
 
-               rc = cifs_are_all_path_components_accessible(server,
+               if (rc != -EREMOTE) {
+                       rc = cifs_are_all_path_components_accessible(server,
                                                             xid, tcon, cifs_sb,
                                                             full_path);
-               if (rc != 0) {
-                       cifs_dbg(VFS, "cannot query dirs between root and final path, "
-                                "enabling CIFS_MOUNT_USE_PREFIX_PATH\n");
-                       cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_USE_PREFIX_PATH;
-                       rc = 0;
+                       if (rc != 0) {
+                               cifs_dbg(VFS, "cannot query dirs between root and final path, "
+                                        "enabling CIFS_MOUNT_USE_PREFIX_PATH\n");
+                               cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_USE_PREFIX_PATH;
+                               rc = 0;
+                       }
                }
                kfree(full_path);
        }