diff options
author | Keith Bostic <keith@wiredtiger.com> | 2015-07-21 07:47:27 -0400 |
---|---|---|
committer | Keith Bostic <keith@wiredtiger.com> | 2015-07-21 07:47:27 -0400 |
commit | d0c4dc354d3907754cdc2c63b4884a82caab4a6a (patch) | |
tree | 4514a5b7f5fb3df7ecbcac195b5e2c9bf0a9e428 /src/btree/bt_handle.c | |
parent | 1d176db09144479b7dd9f70b2d372c666a5940db (diff) | |
download | mongo-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.c | 28 |
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)); |