When we get an access denied on SMB TConX (non existing userid will
cause sessetup to succeed as guest but SMB tconX to fail) - we now
unconditionally check for dfs path on any error in SMB TconX which
results in 9 extra requests. Perhaps we should check for rc == EACCES
(in cifs_mount in fs/cifs/connect.c)
/* search for existing tcon to this server share */
tcon = cifs_get_tcon(pSesInfo, volume_info);
if (IS_ERR(tcon)) {
rc = PTR_ERR(tcon);
tcon = NULL;
goto remote_path_check;
}
or after remote_path_check label below:
/*
* Perform an unconditional check for whether there are DFS
* referrals for this path without prefix, to provide support
* for DFS referrals from w2k8 servers which don't seem to respond
* with PATH_NOT_COVERED to requests that include the prefix.
* Chase the referral if found, otherwise continue normally.
*/
if (referral_walks_count == 0) {
int refrc = expand_dfs_referral(xid, pSesInfo, volume_info,
cifs_sb, false);
if (!refrc) {
referral_walks_count++;
goto try_mount_again;
}
}
--
Thanks,
Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html