lkml.org 
[lkml]   [2011]   [Aug]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [3.0.0+][Regression][Bisected] CIFS: getdents() broken for large dirs
On Tue, 2 Aug 2011 11:03:28 -0500
Steve French <smfrench@gmail.com> wrote:

> your patch does look right.
>

Sigh...as is often the case, things are not quite so simple...

I did some auditing of how server->maxBuf is used in the cifs code and
found it to be very confused. The reason it basically works, I think is
because on NEGOTIATE, the client does this:

server->maxBuf = min(le32_to_cpu(pSMBr->MaxBufferSize),
(__u32) CIFSMaxBufSize + MAX_CIFS_HDR_SIZE);

So using maxBuf and CIFSMaxBufSize interchangeably like the code does
is basically OK, even if it is confusing to limit how much the client
can receive based on how much the server can.

I think that we really need to approach this more comprehensively and
have a clear delineation between server->maxBuf and CIFSMaxBufSize. I
don't think it would be wise though to put that into 3.1 at this point.

I think it would probably be best to just back out commit c4d3396b2 for
now, and I'll plan to do this as a larger (and hopefully better-tested)
patchset for 6.2.

Sound ok? Do you need me to send a revert patch?

--
Jeff Layton <jlayton@redhat.com>


\
 
 \ /
  Last update: 2011-08-02 23:45    [W:0.053 / U:0.356 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site