[PATCH] Remove contend_level2 kernel oplock callbacks

Volker Lendecke Volker.Lendecke at SerNet.DE
Tue Aug 21 19:07:51 UTC 2018


Hi!

Review appreciated!

Thanks, Volker

-- 
SerNet GmbH, Bahnhofsallee 1b, 37081 Göttingen
phone: +49-551-370000-0, fax: +49-551-370000-9
AG Göttingen, HRB 2816, GF: Dr. Johannes Loxen
http://www.sernet.de, mailto:kontakt at sernet.de

Meet us at Storage Developer Conference (SDC)
Santa Clara, CA USA, September 24th-27th 2018
-------------- next part --------------
From 6ab281cf24743aff9e783d962d8bde13b0d9e8c4 Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Thu, 26 Jul 2018 13:08:06 +0200
Subject: [PATCH] smbd: Remove koplocks->contend_level2 callbacks

This was only implemented by onefs in this way. If we get around to use
for example fanotify or something similar, we can either re-add them or
do it in a different way. For now, simplify the code.

Signed-off-by: Volker Lendecke <vl at samba.org>
---
 source3/include/smb.h       |  4 ----
 source3/smbd/oplock.c       | 20 +-------------------
 source3/smbd/oplock_linux.c |  2 --
 3 files changed, 1 insertion(+), 25 deletions(-)

diff --git a/source3/include/smb.h b/source3/include/smb.h
index 9ec65430852..5b3846f8715 100644
--- a/source3/include/smb.h
+++ b/source3/include/smb.h
@@ -700,10 +700,6 @@ struct kernel_oplocks_ops {
 			   files_struct *fsp, int oplock_type);
 	void (*release_oplock)(struct kernel_oplocks *ctx,
 			       files_struct *fsp, int oplock_type);
-	void (*contend_level2_oplocks_begin)(files_struct *fsp,
-					     enum level2_contention_type type);
-	void (*contend_level2_oplocks_end)(files_struct *fsp,
-					   enum level2_contention_type type);
 };
 
 #include "smb_macros.h"
diff --git a/source3/smbd/oplock.c b/source3/smbd/oplock.c
index 2411ab8254e..4dc58ba99b8 100644
--- a/source3/smbd/oplock.c
+++ b/source3/smbd/oplock.c
@@ -1308,31 +1308,13 @@ done:
 void smbd_contend_level2_oplocks_begin(files_struct *fsp,
 				  enum level2_contention_type type)
 {
-	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 != NULL);
-
-	if (use_kernel && koplocks->ops->contend_level2_oplocks_begin) {
-		koplocks->ops->contend_level2_oplocks_begin(fsp, type);
-		return;
-	}
-
 	contend_level2_oplocks_begin_default(fsp, type);
 }
 
 void smbd_contend_level2_oplocks_end(files_struct *fsp,
 				enum level2_contention_type type)
 {
-	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 != NULL);
-
-	/* Only kernel oplocks implement this so far */
-	if (use_kernel && koplocks->ops->contend_level2_oplocks_end) {
-		koplocks->ops->contend_level2_oplocks_end(fsp, type);
-	}
+	return;
 }
 
 /****************************************************************************
diff --git a/source3/smbd/oplock_linux.c b/source3/smbd/oplock_linux.c
index 7d1f0404512..f5afdd81abd 100644
--- a/source3/smbd/oplock_linux.c
+++ b/source3/smbd/oplock_linux.c
@@ -220,8 +220,6 @@ static bool linux_oplocks_available(void)
 static const struct kernel_oplocks_ops linux_koplocks = {
 	.set_oplock			= linux_set_kernel_oplock,
 	.release_oplock			= linux_release_kernel_oplock,
-	.contend_level2_oplocks_begin	= NULL,
-	.contend_level2_oplocks_end	= NULL,
 };
 
 struct kernel_oplocks *linux_init_kernel_oplocks(struct smbd_server_connection *sconn)
-- 
2.11.0



More information about the samba-technical mailing list