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

Reply via email to