summaryrefslogtreecommitdiff
path: root/src/btree/bt_sync.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/btree/bt_sync.c')
-rw-r--r--src/btree/bt_sync.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/btree/bt_sync.c b/src/btree/bt_sync.c
index a75af03d8c8..d925eefc2fe 100644
--- a/src/btree/bt_sync.c
+++ b/src/btree/bt_sync.c
@@ -25,6 +25,7 @@ __sync_file(WT_SESSION_IMPL *session, int syncop)
uint64_t internal_bytes, leaf_bytes;
uint64_t internal_pages, leaf_pages;
uint32_t flags;
+ int evict_reset;
btree = S2BT(session);
@@ -99,11 +100,11 @@ __sync_file(WT_SESSION_IMPL *session, int syncop)
* eviction to complete.
*/
btree->checkpointing = 1;
+ WT_FULL_BARRIER();
- if (!F_ISSET(btree, WT_BTREE_NO_EVICTION)) {
- WT_ERR(__wt_evict_file_exclusive_on(session));
+ WT_ERR(__wt_evict_file_exclusive_on(session, &evict_reset));
+ if (evict_reset)
__wt_evict_file_exclusive_off(session);
- }
/* Write all dirty in-cache pages. */
flags |= WT_READ_NO_EVICT;