What is the purpose of CAP_LARGE_READX?

Christopher R. Hertel crh at ubiqx.mn.org
Thu Jan 17 17:23:43 MST 2013


[Below...]

On 01/17/2013 05:01 PM, George K Colley wrote:
> 
> On Jan 17, 2013, at 2:24 PM, Christopher R. Hertel <crh at ubiqx.mn.org> wrote:
> 
>> On 01/17/2013 04:15 PM, Jeremy Allison wrote:
>>> On Fri, Jan 18, 2013 at 09:10:33AM +1100, Andrew Bartlett wrote:
>>>> On Thu, 2013-01-17 at 13:54 -0800, Jeremy Allison wrote:
>>>>> On Fri, Jan 18, 2013 at 08:44:42AM +1100, Andrew Bartlett wrote:
>>>>>> I'm chasing a bug where a MacOSX client asks for 64k of data, we ignore
>>>>>> the high bits, and return 0 bytes.  The client then writes a 64k zero
>>>>>> page locally. 
>>>>>>
>>>>>> The formal bug report will follow once I clear the details with the
>>>>>> reporter, but it raised in my head some 'meta' questions.
>>>>>>
>>>>>> What is the purpose of CAP_LARGE_READX?  The Samba smbd file server only
>>>>>> mentions it to claim support for it in negprot, but does not use it in
>>>>>> reply.c since
>>>>>> https://git.samba.org/?p=samba.git;a=commitdiff;h=f8c26c16b82989e002b839fc9eba6386fc036f6a
>>>>>>
>>>>>> I would say 'so, we should not advertise it', but the trace I've been
>>>>>> given of Win2008R2 also claims the same flag, but that patch claims it
>>>>>> also isn't supported.
>>>>>>
>>>>>> If the only way to do large reads and writes with SMB1 is via the unix
>>>>>> extensions, what is the purpose of the capability flag?
>>>>>
>>>>> Was created to allow implementations to do unix extensions without
>>>>> having to allow large readX or large writeX calls (there's also a
>>>>> CAP_LARGE_WRITEX). As we're the only server who ever implemented
>>>>> the unix extensions they appear synonomous, but they're not.
>>>>
>>>> I guess what I'm puzzled at is windows advertising it, but not honouring
>>>> it, or getting a closer idea what's really going on.
>>>
>>> Oh, ok - if Windows is advertizing it them I'm completely confused,
>>> and I'm not remembering the CAP flags correctly. Sorry, ignore my
>>> previous comment :-).
>>
>> It is in the Windows code, but I will need to re-read portions of MS-CIFS
>> and MS-SMB to jog my memory.  As I recall (vaguely), CAP_LARGE_READX and
>> CAP_LARGE_WRITEX were defined at the same time, but one of them was not
>> implemented until much later.
>>
> Correct NT4 only supported SMB_CAP_LARGE_READX, WinXP and above support both

George, Your memory is keener than mine.  Thanks!

I believe that the details can be found in MS-CIFS and MS-SMB.  Note that
WinXP is covered in MS-SMB and not in MS-CIFS.

Chris -)-----

>> Let me check tonight and I'll see what I can remember.
>>
>> Chris -)-----
>>

-- 
"Implementing CIFS - the Common Internet FileSystem" ISBN: 013047116X
Samba Team -- http://www.samba.org/     -)-----   Christopher R. Hertel
jCIFS Team -- http://jcifs.samba.org/   -)-----   ubiqx development, uninq.
ubiqx Team -- http://www.ubiqx.org/     -)-----   crh at ubiqx.mn.org
OnLineBook -- http://ubiqx.org/cifs/    -)-----   crh at ubiqx.org


More information about the samba-technical mailing list