cifs: wrap received signature check in srv_mutex
authorJeff Layton <jlayton@redhat.com>
Sat, 2 Apr 2011 11:34:30 +0000 (07:34 -0400)
committerBrad Figg <brad.figg@canonical.com>
Wed, 27 Apr 2011 18:41:44 +0000 (11:41 -0700)
commiteb58566b02f55f4d329d66654557eb0516df8652
treee643da40c122005a0d68c3d29ad28388df37b78e
parent88379a4dcd9e221e87210d8bd2ed4da95951291f
cifs: wrap received signature check in srv_mutex

BugLink: http://bugs.launchpad.net/bugs/769042

commit 157c249114508aa71daa308a426e15d81a4eed00 upstream.

While testing my patchset to fix asynchronous writes, I hit a bunch
of signature problems when testing with signing on. The problem seems
to be that signature checks on receive can be running at the same
time as a process that is sending, or even that multiple receives can
be checking signatures at the same time, clobbering the same data
structures.

While we're at it, clean up the comments over cifs_calculate_signature
and add a note that the srv_mutex should be held when calling this
function.

This patch seems to fix the problems for me, but I'm not clear on
whether it's the best approach. If it is, then this should probably
go to stable too.

Cc: Shirish Pargaonkar <shirishpargaonkar@gmail.com>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Leann Ogasawara <leann.ogasawara@canonical.com>
fs/cifs/cifsencrypt.c