s3:smbd add seperate function to initialize kernel oplocks
authorChristian Ambach <ambi@samba.org>
Fri, 30 Mar 2012 13:51:25 +0000 (15:51 +0200)
committerJeremy Allison <jra@samba.org>
Wed, 11 Apr 2012 18:11:39 +0000 (11:11 -0700)
Signed-off-by: Jeremy Allison <jra@samba.org>
source3/smbd/oplock.c
source3/smbd/proto.h

index d523da644dfcf86c21a046140f3584f24964fe16..c619edc5b9d39090562285384afb1ca25276c344 100644 (file)
@@ -978,7 +978,13 @@ bool init_oplocks(struct smbd_server_connection *sconn)
        messaging_register(sconn->msg_ctx, sconn, MSG_SMB_OPEN_RETRY,
                           process_open_retry_message);
 
-       if (lp_kernel_oplocks(-1)) {
+       return true;
+}
+
+void init_kernel_oplocks(struct smbd_server_connection *sconn)
+{
+       /* only initialize once */
+       if (koplocks == NULL) {
 #if HAVE_KERNEL_OPLOCKS_IRIX
                koplocks = irix_init_kernel_oplocks(sconn);
 #elif HAVE_KERNEL_OPLOCKS_LINUX
@@ -988,6 +994,4 @@ bool init_oplocks(struct smbd_server_connection *sconn)
                koplocks = onefs_init_kernel_oplocks(sconn);
 #endif
        }
-
-       return True;
 }
index 5ab51850873406b448dcfa9bf35b43bb2318483a..f2040cdbac57643d392f42119665dbb7ea30f067 100644 (file)
@@ -673,6 +673,7 @@ void smbd_contend_level2_oplocks_end(files_struct *fsp,
 void share_mode_entry_to_message(char *msg, const struct share_mode_entry *e);
 void message_to_share_mode_entry(struct share_mode_entry *e, char *msg);
 bool init_oplocks(struct smbd_server_connection *sconn);
+void init_kernel_oplocks(struct smbd_server_connection *sconn);
 
 /* The following definitions come from smbd/oplock_irix.c  */