summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Ambach <ambi@samba.org>2016-01-04 23:12:25 +0100
committerJeremy Allison <jra@samba.org>2016-01-06 08:58:56 +0100
commiteda6aaf1533b69d093ba67ff5e22fcda0073dd3f (patch)
treece0642fe046a9f6ac4b5baef9017eefb63ce715e
parent3e1b26bd6d0998c3af3d77f94eaac469434389be (diff)
downloadsamba-eda6aaf1533b69d093ba67ff5e22fcda0073dd3f.tar.gz
s3:smbd/oplock obey kernel oplock setting when releasing oplocks
otherwise smbd asks the kernel to release an oplock that was never requested Bug: https://bugzilla.samba.org/show_bug.cgi?id=11400 Signed-off-by: Christian Ambach <ambi@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org> Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Wed Jan 6 08:58:56 CET 2016 on sn-devel-144
-rw-r--r--source3/smbd/oplock.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/source3/smbd/oplock.c b/source3/smbd/oplock.c
index 4d84347924e..4f108d9545e 100644
--- a/source3/smbd/oplock.c
+++ b/source3/smbd/oplock.c
@@ -96,9 +96,10 @@ static void release_file_oplock(files_struct *fsp)
{
struct smbd_server_connection *sconn = fsp->conn->sconn;
struct kernel_oplocks *koplocks = sconn->oplocks.kernel_ops;
+ bool use_kernel = lp_kernel_oplocks(SNUM(fsp->conn)) && koplocks;
if ((fsp->oplock_type != NO_OPLOCK) &&
- koplocks) {
+ use_kernel) {
koplocks->ops->release_oplock(koplocks, fsp, NO_OPLOCK);
}