From 1d012a6780c543620413b24237cb7e9b97a6e3bc Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Thu, 6 Sep 2012 14:23:26 +0200 Subject: [PATCH] s3: introduce a new share config option "durable handles" defaulting to "yes" This is in order to be able to turn durable handles off and on on a per share basis. Note: This is only used in combination with: kernel share modes = no kernel oplocks = no posix locking = no Which means CIFS/SMB2 only access. Signed-off-by: Stefan Metzmacher --- lib/param/param_functions.c | 1 + lib/param/param_table.c | 9 +++++++++ source3/include/proto.h | 1 + source3/param/loadparm.c | 1 + 4 files changed, 12 insertions(+) diff --git a/lib/param/param_functions.c b/lib/param/param_functions.c index 3b39e887672..bf6863e76d5 100644 --- a/lib/param/param_functions.c +++ b/lib/param/param_functions.c @@ -156,6 +156,7 @@ FN_LOCAL_CHAR(magicchar, magic_char) FN_LOCAL_STRING(cups_options, szCupsOptions) FN_LOCAL_PARM_BOOL(change_notify, bChangeNotify) FN_LOCAL_PARM_BOOL(kernel_change_notify, bKernelChangeNotify) +FN_LOCAL_BOOL(durable_handles, bDurableHandles) FN_GLOBAL_BOOL(allow_insecure_widelinks, bAllowInsecureWidelinks) FN_GLOBAL_BOOL(allow_trusted_domains, bAllowTrustedDomains) diff --git a/lib/param/param_table.c b/lib/param/param_table.c index 23489ae01f9..060608a831b 100644 --- a/lib/param/param_table.c +++ b/lib/param/param_table.c @@ -1763,6 +1763,15 @@ static struct parm_struct parm_table[] = { .special = NULL, .enum_list = NULL }, + { + .label = "durable handles", + .type = P_BOOL, + .p_class = P_LOCAL, + .offset = LOCAL_VAR(bDurableHandles), + .special = NULL, + .enum_list = NULL, + .flags = FLAG_ADVANCED, + }, {N_("Tuning Options"), P_SEP, P_SEPARATOR}, diff --git a/source3/include/proto.h b/source3/include/proto.h index 44b9d716e5c..6dbdf4eae10 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -1327,6 +1327,7 @@ bool lp_afs_share(int ); bool lp_acl_check_permissions(int ); bool lp_acl_group_control(int ); bool lp_acl_map_full_control(int ); +bool lp_durable_handles(int); int lp_create_mask(int ); int lp_force_create_mode(int ); int lp_security_mask(int ); diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index 563d6446a00..f1999ad8171 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -282,6 +282,7 @@ static struct loadparm_service sDefault = #endif .ismb_encrypt = SMB_SIGNING_DEFAULT, .bKernelShareModes = true, + .bDurableHandles = true, .param_opt = NULL, .dummy = "" }; -- 2.34.1