]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
cifs: fix cifs stable patch cifs-fix-oplock-break-handling-try-2.patch
authorSuresh Jayaraman <sjayaraman@suse.com>
Fri, 2 Dec 2011 10:54:56 +0000 (16:24 +0530)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 9 Dec 2011 17:21:48 +0000 (09:21 -0800)
The stable release 2.6.32.32 added the upstream commit
12fed00de963433128b5366a21a55808fab2f756. However, one of the hunks of
the original patch seems missing from the stable backport which can be
found here:
   http://permalink.gmane.org/gmane.linux.kernel.stable/5676

This hunk corresponds to the change in is_valid_oplock_break() at
fs/cifs/misc.c.

This patch backports the missing hunk and is against
linux-2.6.32.y stable kernel.

Cc: Steve French <sfrench@us.ibm.com>
Signed-off-by: Pavel Shilovsky <piastry@etersoft.ru>
Signed-off-by: Suresh Jayaraman <sjayaraman@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/cifs/misc.c

index d27d4ec6579bb41d296b4796b163cd6110ea7158..95b82e8b57a4530e319e49060d6a4c899a847b54 100644 (file)
@@ -584,6 +584,9 @@ is_valid_oplock_break(struct smb_hdr *buf, struct TCP_Server_Info *srv)
                                pCifsInode->clientCanCacheAll = false;
                                if (pSMB->OplockLevel == 0)
                                        pCifsInode->clientCanCacheRead = false;
+                               else if (pSMB->OplockLevel)
+                                       pCifsInode->clientCanCacheRead = true;
+
                                rc = slow_work_enqueue(&netfile->oplock_break);
                                if (rc) {
                                        cERROR(1, ("failed to enqueue oplock "