diff options
author | Sachin Prabhu <sprabhu@redhat.com> | 2016-09-06 08:22:34 -0400 |
---|---|---|
committer | Steve French <smfrench@gmail.com> | 2016-10-12 13:08:32 -0400 |
commit | d171356ff11ab1825e456dfb979755e01b3c54a1 (patch) | |
tree | 1a14b2db140723082cce10d6a4ee462cb38559af | |
parent | 94f873717571c759b7928399cbbddfa3d569bd01 (diff) |
Fix regression which breaks DFS mounting
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>
-rw-r--r-- | fs/cifs/connect.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index c841244a954d..7b67179521cf 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c | |||
@@ -3688,14 +3688,16 @@ remote_path_check: | |||
3688 | goto mount_fail_check; | 3688 | goto mount_fail_check; |
3689 | } | 3689 | } |
3690 | 3690 | ||
3691 | rc = cifs_are_all_path_components_accessible(server, | 3691 | if (rc != -EREMOTE) { |
3692 | rc = cifs_are_all_path_components_accessible(server, | ||
3692 | xid, tcon, cifs_sb, | 3693 | xid, tcon, cifs_sb, |
3693 | full_path); | 3694 | full_path); |
3694 | if (rc != 0) { | 3695 | if (rc != 0) { |
3695 | cifs_dbg(VFS, "cannot query dirs between root and final path, " | 3696 | cifs_dbg(VFS, "cannot query dirs between root and final path, " |
3696 | "enabling CIFS_MOUNT_USE_PREFIX_PATH\n"); | 3697 | "enabling CIFS_MOUNT_USE_PREFIX_PATH\n"); |
3697 | cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_USE_PREFIX_PATH; | 3698 | cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_USE_PREFIX_PATH; |
3698 | rc = 0; | 3699 | rc = 0; |
3700 | } | ||
3699 | } | 3701 | } |
3700 | kfree(full_path); | 3702 | kfree(full_path); |
3701 | } | 3703 | } |