diff options
Diffstat (limited to 'src/btree/bt_sync.c')
-rw-r--r-- | src/btree/bt_sync.c | 7 |
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; |