]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/4.8.5/fix-regression-which-breaks-dfs-mounting.patch
4.9-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 4.8.5 / fix-regression-which-breaks-dfs-mounting.patch
CommitLineData
39a3a1fe
GKH
1From d171356ff11ab1825e456dfb979755e01b3c54a1 Mon Sep 17 00:00:00 2001
2From: Sachin Prabhu <sprabhu@redhat.com>
3Date: Tue, 6 Sep 2016 13:22:34 +0100
4Subject: Fix regression which breaks DFS mounting
5
6From: Sachin Prabhu <sprabhu@redhat.com>
7
8commit d171356ff11ab1825e456dfb979755e01b3c54a1 upstream.
9
10Patch a6b5058 results in -EREMOTE returned by is_path_accessible() in
11cifs_mount() to be ignored which breaks DFS mounting.
12
13Signed-off-by: Sachin Prabhu <sprabhu@redhat.com>
14Reviewed-by: Aurelien Aptel <aaptel@suse.com>
15Signed-off-by: Steve French <smfrench@gmail.com>
16Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
17
18---
19 fs/cifs/connect.c | 14 ++++++++------
20 1 file changed, 8 insertions(+), 6 deletions(-)
21
22--- a/fs/cifs/connect.c
23+++ b/fs/cifs/connect.c
24@@ -3688,14 +3688,16 @@ remote_path_check:
25 goto mount_fail_check;
26 }
27
28- rc = cifs_are_all_path_components_accessible(server,
29+ if (rc != -EREMOTE) {
30+ rc = cifs_are_all_path_components_accessible(server,
31 xid, tcon, cifs_sb,
32 full_path);
33- if (rc != 0) {
34- cifs_dbg(VFS, "cannot query dirs between root and final path, "
35- "enabling CIFS_MOUNT_USE_PREFIX_PATH\n");
36- cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_USE_PREFIX_PATH;
37- rc = 0;
38+ if (rc != 0) {
39+ cifs_dbg(VFS, "cannot query dirs between root and final path, "
40+ "enabling CIFS_MOUNT_USE_PREFIX_PATH\n");
41+ cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_USE_PREFIX_PATH;
42+ rc = 0;
43+ }
44 }
45 kfree(full_path);
46 }