summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2012-09-06 14:23:26 +0200
committerStefan Metzmacher <metze@samba.org>2012-09-08 19:46:08 +0200
commit1d012a6780c543620413b24237cb7e9b97a6e3bc (patch)
treecc480d606db4060958c6c29343b072471c9db184
parentba011c1de0e8dc4c6bb9e2b53fef2f0fcff43854 (diff)
downloadsamba-1d012a6780c543620413b24237cb7e9b97a6e3bc.tar.gz
samba-1d012a6780c543620413b24237cb7e9b97a6e3bc.tar.bz2
samba-1d012a6780c543620413b24237cb7e9b97a6e3bc.zip
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 <metze@samba.org>
-rw-r--r--lib/param/param_functions.c1
-rw-r--r--lib/param/param_table.c9
-rw-r--r--source3/include/proto.h1
-rw-r--r--source3/param/loadparm.c1
4 files changed, 12 insertions, 0 deletions
diff --git a/lib/param/param_functions.c b/lib/param/param_functions.c
index 3b39e88767..bf6863e76d 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 23489ae01f..060608a831 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 44b9d716e5..6dbdf4eae1 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 563d6446a0..f1999ad817 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 = ""
};