When you have the following DFS referrals in place: home -> msdfs:serverA\homeA,serverB\homeB mount.cifs does not attempt to lookup serverB regardless of serverA availability or permissions set on shares, i.e. distributed home directories. The following patch against 2.6.34-rc2 increments the referral pointer to resolve the problem Signed-off-by: Darren Williams <darren.w at computer.org> --- diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c index 7cc7f83..4e83477 100644 --- a/fs/cifs/cifssmb.c +++ b/fs/cifs/cifssmb.c @@ -4020,7 +4020,7 @@ parse_DFS_referrals(TRANSACTION2_GET_DFS_REFER_RSP *pSMBr, } /* collect necessary data from referrals */ - for (i = 0; i < *num_of_nodes; i++) { + for (i = 0; i < *num_of_nodes; i++, ref++) { char *temp; int max_len; struct dfs_info3_param *node = (*target_nodes)+i;
Could you please send your patch with analysis to linux-cifs@vger.kernel.org ? Generally, discussions about patches, reviews happens in the mailing list.
This bug was discussed and fixed here: http://comments.gmane.org/gmane.linux.kernel.cifs/1874 and included in mainline here: https://lkml.org/lkml/2010/12/15/457 http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git;a=commit;h=caa4a59574a39e6574664e82b92455d41eca27a8