summaryrefslogtreecommitdiff
path: root/src/btree/bt_handle.c
diff options
context:
space:
mode:
authorKeith Bostic <keith@wiredtiger.com>2015-07-21 07:47:27 -0400
committerKeith Bostic <keith@wiredtiger.com>2015-07-21 07:47:27 -0400
commitd0c4dc354d3907754cdc2c63b4884a82caab4a6a (patch)
tree4514a5b7f5fb3df7ecbcac195b5e2c9bf0a9e428 /src/btree/bt_handle.c
parent1d176db09144479b7dd9f70b2d372c666a5940db (diff)
downloadmongo-d0c4dc354d3907754cdc2c63b4884a82caab4a6a.tar.gz
The metadata file has special WT_BTREE handle flags; instead of setting
in the Btree code (which requires pretty specific checks on things the Btree implementation shouldn't know about), set the flags after the Btree code returns into the code that initially opens the metadata file.
Diffstat (limited to 'src/btree/bt_handle.c')
-rw-r--r--src/btree/bt_handle.c28
1 files changed, 9 insertions, 19 deletions
diff --git a/src/btree/bt_handle.c b/src/btree/bt_handle.c
index c1a8ab61054..1f9df798818 100644
--- a/src/btree/bt_handle.c
+++ b/src/btree/bt_handle.c
@@ -255,27 +255,17 @@ __btree_conf(WT_SESSION_IMPL *session, WT_CKPT *ckpt)
/* Page sizes */
WT_RET(__btree_page_sizes(session));
- /*
- * Set special flags for the metadata file.
- * Eviction; the metadata file is never evicted.
- * Logging; the metadata file is always logged if possible.
- */
- if (WT_IS_METADATA(btree->dhandle)) {
+ WT_RET(__wt_config_gets(session, cfg, "cache_resident", &cval));
+ if (cval.val)
F_SET(btree, WT_BTREE_IN_MEMORY | WT_BTREE_NO_EVICTION);
+ else
+ F_CLR(btree, WT_BTREE_IN_MEMORY | WT_BTREE_NO_EVICTION);
+
+ WT_RET(__wt_config_gets(session, cfg, "log.enabled", &cval));
+ if (cval.val)
F_CLR(btree, WT_BTREE_NO_LOGGING);
- } else {
- WT_RET(__wt_config_gets(session, cfg, "cache_resident", &cval));
- if (cval.val)
- F_SET(btree, WT_BTREE_IN_MEMORY | WT_BTREE_NO_EVICTION);
- else
- F_CLR(btree, WT_BTREE_IN_MEMORY | WT_BTREE_NO_EVICTION);
-
- WT_RET(__wt_config_gets(session, cfg, "log.enabled", &cval));
- if (cval.val)
- F_CLR(btree, WT_BTREE_NO_LOGGING);
- else
- F_SET(btree, WT_BTREE_NO_LOGGING);
- }
+ else
+ F_SET(btree, WT_BTREE_NO_LOGGING);
/* Checksums */
WT_RET(__wt_config_gets(session, cfg, "checksum", &cval));