From 81319d39d9efdfc1e04fd1601d2893a859659c35 Mon Sep 17 00:00:00 2001 From: Suresh Jayaraman Date: Fri, 2 Dec 2011 16:24:56 +0530 Subject: [PATCH] cifs: fix cifs stable patch cifs-fix-oplock-break-handling-try-2.patch commit 4708ad6374f07cdfb379c5d4100125e2cfd339d9 in v2.6.32.x stable 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 Signed-off-by: Pavel Shilovsky Signed-off-by: Suresh Jayaraman Signed-off-by: Greg Kroah-Hartman [PG: I incorrectly dropped the same hunk in v2.6.34.9-152-g0c55f20 since the code in question was relocated/rewritten in e66673e39a ] Signed-off-by: Paul Gortmaker --- fs/cifs/misc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c index d1474996a8121..ec208e6e52750 100644 --- a/fs/cifs/misc.c +++ b/fs/cifs/misc.c @@ -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 " -- 2.47.3