linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH] CIFS: Add nodfs mount option
       [not found] ` <20081016074305.306b2e90@barsoom.rdu.redhat.com>
@ 2008-10-16 13:41   ` Steve French
  0 siblings, 0 replies; only message in thread
From: Steve French @ 2008-10-16 13:41 UTC (permalink / raw)
  To: Jeff Layton
  Cc: Martin Koegler, linux-cifs-client, sfrench, niallain,
	linux-fsdevel

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@redhat.com> wrote:
> On Thu, 16 Oct 2008 08:17:43 +0200
> Martin Koegler <mkoegler@auto.tuwien.ac.at> 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@auto.tuwien.ac.at>
>> ---
>>
>> 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@redhat.com>
>



-- 
Thanks,

Steve

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-10-16 13:41 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1224137863585-git-send-email-mkoegler@auto.tuwien.ac.at>
     [not found] ` <20081016074305.306b2e90@barsoom.rdu.redhat.com>
2008-10-16 13:41   ` [PATCH] CIFS: Add nodfs mount option Steve French

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).