Sounds reasonable to me - I will queue it up or something similar unless there are any objections. On Thu, Oct 16, 2008 at 6:43 AM, Jeff Layton <jlayton@xxxxxxxxxx> wrote: > On Thu, 16 Oct 2008 08:17:43 +0200 > Martin Koegler <mkoegler@xxxxxxxxxxxxxxxxx> wrote: > >> Older samba server (eg. 3.0.24 from Debian etch) don't work correctly, >> if DFS paths are used. Such server claim that they support DFS, but fail >> to process some requests with DFS paths. Starting with Linux 2.6.26, >> the cifs clients starts sending DFS paths in such situations, rendering >> it unuseable with older samba servers. >> >> The nodfs mount options forces a share to be used with non DFS paths, >> even if the server claims, that it supports it. >> >> Signed-off-by: Martin Koegler <mkoegler@xxxxxxxxxxxxxxxxx> >> --- >> >> This patch makes my home directory on a samba server useable for Linux 2.6.26 >> again. It still needs more testing. Should apply to linux 2.6.27 too. >> >> Would it be possible to support something like this in the offical CIFS client? >> >> diff a/fs/cifs/connect.c b/fs/cifs/connect.c >> --- a/fs/cifs/connect.c >> +++ b/fs/cifs/connect.c >> @@ -90,6 +90,7 @@ struct smb_vol { >> bool nocase:1; /* request case insensitive filenames */ >> bool nobrl:1; /* disable sending byte range locks to srv */ >> bool seal:1; /* request transport encryption on share */ >> + bool nodfs:1; >> unsigned int rsize; >> unsigned int wsize; >> unsigned int sockopt; >> @@ -1223,6 +1224,8 @@ cifs_parse_mount_options(char *options, >> vol->sfu_emul = 1; >> } else if (strnicmp(data, "nosfu", 5) == 0) { >> vol->sfu_emul = 0; >> + } else if (strnicmp(data, "nodfs", 5) == 0) { >> + vol->nodfs = 1; >> } else if (strnicmp(data, "posixpaths", 10) == 0) { >> vol->posix_paths = 1; >> } else if (strnicmp(data, "noposixpaths", 12) == 0) { >> @@ -2167,6 +2170,10 @@ cifs_mount(struct super_block *sb, struc >> volume_info.UNC, >> tcon, cifs_sb->local_nls); >> cFYI(1, ("CIFS Tcon rc = %d", rc)); >> + if (volume_info.nodfs) { >> + tcon->Flags &= ~SMB_SHARE_IS_IN_DFS; >> + cFYI(1, ("CIFS DFS disabeld (%d)", tcon->Flags)); >> + } >> } >> if (!rc) { >> atomic_inc(&pSesInfo->inUse); >> -- > > > Looks reasonable to me. Igor did most of the DFS work, so I cc'ed him > here. Igor, any thoughts? > > -- > Jeff Layton <jlayton@xxxxxxxxxx> > -- Thanks, Steve -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html