disabling oplocks/leases via module parm enable_oplocks broken for SMB3
authorSteve French <smfrench@gmail.com>
Tue, 22 Sep 2015 14:29:38 +0000 (09:29 -0500)
committerSasha Levin <sasha.levin@oracle.com>
Wed, 28 Oct 2015 02:13:39 +0000 (22:13 -0400)
[ Upstream commit e0ddde9d44e37fbc21ce893553094ecf1a633ab5 ]

leases (oplocks) were always requested for SMB2/SMB3 even when oplocks
disabled in the cifs.ko module.

Signed-off-by: Steve French <steve.french@primarydata.com>
Reviewed-by: Chandrika Srinivasan <chandrika.srinivasan@citrix.com>
CC: Stable <stable@vger.kernel.org>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
fs/cifs/smb2ops.c

index cc93a7ffe8e4a682e80a9ce5bb1bab328a8dc4b2..51f5251d7db59e841ec1e00668120e8c81764d4f 100644 (file)
@@ -50,9 +50,13 @@ change_conf(struct TCP_Server_Info *server)
                break;
        default:
                server->echoes = true;
-               server->oplocks = true;
+               if (enable_oplocks) {
+                       server->oplocks = true;
+                       server->oplock_credits = 1;
+               } else
+                       server->oplocks = false;
+
                server->echo_credits = 1;
-               server->oplock_credits = 1;
        }
        server->credits -= server->echo_credits + server->oplock_credits;
        return 0;