Make oplocks a per-share option.
authorAndrew Bartlett <abartlet@samba.org>
Thu, 27 Mar 2008 09:32:02 +0000 (20:32 +1100)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 27 Mar 2008 09:32:02 +0000 (20:32 +1100)
This even goes via the share options system (a very odd layer of indirection).

Andrew Bartlett

source/cluster/ctdb/opendb_ctdb.c
source/ntvfs/common/opendb_tdb.c
source/param/loadparm.c
source/param/share.h

index 402f3a2a1afe8ed1883f01d4fbf4bd22b7c7cc50..f0366ceb4978f0a2ffac061b85c7a50f4bed08bd 100644 (file)
@@ -97,7 +97,7 @@ static struct odb_context *odb_ctdb_init(TALLOC_CTX *mem_ctx,
        odb->ntvfs_ctx = ntvfs_ctx;
 
        /* leave oplocks disabled by default until the code is working */
-       odb->oplocks = lp_parm_bool(ntvfs_ctx->lp_ctx, NULL, "opendb", "oplocks", false);
+       odb->oplocks = share_bool_option(ntvfs->ctx->config, SHARE_OPLOCKS, SHARE_OPLOCKS_DEFAULT);
 
        return odb;
 }
index be78e0995810497e8fad6da7e75caaff1760d6b8..40a1d27f3016966692eaf1c7663e7328ac013b98 100644 (file)
@@ -101,8 +101,7 @@ static struct odb_context *odb_tdb_init(TALLOC_CTX *mem_ctx,
 
        odb->ntvfs_ctx = ntvfs_ctx;
 
-       /* leave oplocks disabled by default until the code is working */
-       odb->oplocks = lp_parm_bool(ntvfs_ctx->lp_ctx, NULL, "opendb", "oplocks", false);
+       odb->oplocks = share_bool_option(ntvfs_ctx->ctx->config, SHARE_OPLOCKS, SHARE_OPLOCKS_DEFAULT);
 
        odb->lease_ctx = sys_lease_context_create(ntvfs_ctx->config, odb,
                                                  ntvfs_ctx->event_ctx,
index a1d29b07711f1e6b4509a05cda676c79cc3a60c8..9e0a239abeba92a073dfb759b5169be8ed82287a 100644 (file)
@@ -210,6 +210,7 @@ struct loadparm_service
        int bMap_hidden;
        int bMap_archive;
        int bStrictLocking;
+       int bOplocks;
        int iCreate_mask;
        int iCreate_force_mode;
        int iDir_mask;
@@ -715,6 +716,7 @@ _PUBLIC_ FN_LOCAL_BOOL(lp_print_ok, bPrint_ok)
 _PUBLIC_ FN_LOCAL_BOOL(lp_map_hidden, bMap_hidden)
 _PUBLIC_ FN_LOCAL_BOOL(lp_map_archive, bMap_archive)
 _PUBLIC_ FN_LOCAL_BOOL(lp_strict_locking, bStrictLocking)
+_PUBLIC_ FN_LOCAL_BOOL(lp_oplocks, bOplocks)
 _PUBLIC_ FN_LOCAL_BOOL(lp_strict_sync, bStrictSync)
 _PUBLIC_ FN_LOCAL_BOOL(lp_ci_filesystem, bCIFileSystem)
 _PUBLIC_ FN_LOCAL_BOOL(lp_map_system, bMap_system)
@@ -2292,7 +2294,7 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx)
        lp_do_global_parameter(lp_ctx, "max connections", "-1");
 
        lp_do_global_parameter(lp_ctx, "dcerpc endpoint servers", "epmapper srvsvc wkssvc rpcecho samr netlogon lsarpc spoolss drsuapi winreg dssetup unixinfo");
-       lp_do_global_parameter(lp_ctx, "server services", "smb rpc nbt wrepl ldap cldap web kdc drepl winbind");
+       lp_do_global_parameter(lp_ctx, "server services", "smb rpc nbt wrepl ldap cldap kdc drepl winbind");
        lp_do_global_parameter(lp_ctx, "ntptr providor", "simple_ldb");
        lp_do_global_parameter(lp_ctx, "auth methods:domain controller", "anonymous sam_ignoredomain");
        lp_do_global_parameter(lp_ctx, "auth methods:member server", "anonymous sam winbind");
@@ -2406,6 +2408,8 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx)
 
        lp_do_global_parameter(lp_ctx, "prefork children:smb", "4");
 
+       lp_do_global_parameter(lp_ctx, "oplocks", "true");
+
        for (i = 0; parm_table[i].label; i++) {
                if (!(lp_ctx->flags[i] & FLAG_CMDLINE)) {
                        lp_ctx->flags[i] |= FLAG_DEFAULT;
index 51f45781c150f72774c2f2c3f42ced38348c33e5..9f9cbdce5bed8ed447f37ffa68c9fa8bb6c97d0d 100644 (file)
@@ -90,6 +90,7 @@ struct loadparm_context;
 #define SHARE_MAP_ARCHIVE      "map-archive"
 
 #define SHARE_STRICT_LOCKING   "strict-locking"
+#define SHARE_OPLOCKS          "oplocks"
 #define SHARE_STRICT_SYNC      "strict-sync"
 #define SHARE_MSDFS_ROOT       "msdfs-root"
 #define SHARE_CI_FILESYSTEM    "ci-filesystem"
@@ -125,6 +126,7 @@ struct loadparm_context;
 #define SHARE_MAP_ARCHIVE_DEFAULT      true
 
 #define SHARE_STRICT_LOCKING_DEFAULT   true
+#define SHARE_OPLOCKS_DEFAULT  true
 #define SHARE_STRICT_SYNC_DEFAULT      false
 #define SHARE_MSDFS_ROOT_DEFAULT       false
 #define SHARE_CI_FILESYSTEM_DEFAULT    false