Kernel Bug Tracker – Bug 36952
[2.6.39] CIFS write failures where 2.6.38 works
Last modified: 2011-07-10 20:22:51 UTC
Subject : [2.6.39] CIFS write failures where 2.6.38 works
Submitter : Helge Hafting <firstname.lastname@example.org>
Date : 2011-06-01 10:11
Message-ID : 4DE6103E.email@example.com
References : http://marc.info/?l=linux-kernel&m=130692387613423&w=2
This entry is being used for tracking a regression from 2.6.38. Please don't
close it until the problem is fixed in the mainline.
Does this patch help?
I highly doubt it. All that does is silence a printk when signatures are enabled. I think we need to understand more of what's happening on the wire, but we haven't heard from the reporter of this bug in a while...
Looking at that function and the patch, it seems that it is doing a little bit more than just avoiding a printk. Hence my mumbling..
I confirm that the given patch (at comment #1) doesn't fix the issue. As expected, actually.
Forgot to say, I have one of our developers with the same issue, I'll ask him to collect some debug info.
I suspect that this may be an issue with signed connections. If you mount with a smaller wsize, say wsize=16384 or so, does this problem go away?
If so, then this should be fixed for 3.0 once stevef merges this patch into mainline:
...for stable, we'll have to do something different as the wsize negotiation there is still a mess.
Created attachment 63332 [details]
dmesg log when failing to copy a file to the server
Mounted a share (without the wsize workaround), tried to copy a file. "cp" got stuck, so I terminated it with ctrl+C after some time. The file was created, but had zero size.
Yep, this is the error we seem to get from win2k8 (and probably other windows versions) in this situation:
[ 1994.961605] Status code returned 0xc0000022 NT_STATUS_ACCESS_DENIED
Usually, we can send a larger write to the server than its MaxBufSize if the server has set the CAP_LARGE_WRITE_X during the protocol negotiation. If signing is enabled though, we can't but the server doesn't clear that bit. The client however has never respected that.
Prior to 2.6.39, that wasn't really an issue since we never sent a write that large when signing was enabled. Now however we do and that's why this is broken. I'll do a patch that will make the client negotiate the wsize downward automatically under these conditions and submit it for stable inclusion.
On Sunday, July 10, 2011, Jeff Layton wrote:
> On Sun, 10 Jul 2011 14:58:54 +0300
> Pekka Enberg <firstname.lastname@example.org> wrote:
> > On Sun, Jul 10, 2011 at 1:58 PM, Rafael J. Wysocki <email@example.com> wrote:
> > > This message has been generated automatically as a part of a report
> > > of regressions introduced between 2.6.38 and 2.6.39.
> > >
> > > The following bug entry is on the current list of known regressions
> > > introduced between 2.6.38 and 2.6.39. Please verify if it still should
> > > be listed and let the tracking team know (either way).
> > >
> > > Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=36952
> > > Subject : [2.6.39] CIFS write failures where 2.6.38 works
> > > Submitter : Helge Hafting <firstname.lastname@example.org>
> > > Date : 2011-06-01 10:11 (40 days old)
> > The last comment in Bugzilla states that Jeff was working on a patch.
> > Was it ever submitted to mainline and stable?
> > Pekka
> Yes, see commit 1190f6a067b in mainline. I also backported it for
> 2.6.39-stable and sent it to email@example.com, but I haven't heard
> anything back on it yet (I'll resend if I don't hear anything in the
> next day or two).