summaryrefslogtreecommitdiff
path: root/src/btree/bt_compact.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/btree/bt_compact.c')
-rw-r--r--src/btree/bt_compact.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/btree/bt_compact.c b/src/btree/bt_compact.c
index 18b6860c758..b2c9e4b67f8 100644
--- a/src/btree/bt_compact.c
+++ b/src/btree/bt_compact.c
@@ -55,10 +55,12 @@ __compact_rewrite(WT_SESSION_IMPL *session, WT_REF *ref, bool *skipp)
* The page's modification information can change underfoot if
* the page is being reconciled, serialize with reconciliation.
*/
- F_CAS_ATOMIC_WAIT(page, WT_PAGE_RECONCILIATION);
+ WT_RET(__wt_fair_lock(session, &page->page_lock));
+
ret = bm->compact_page_skip(bm, session,
mod->mod_replace.addr, mod->mod_replace.size, skipp);
- F_CLR_ATOMIC(page, WT_PAGE_RECONCILIATION);
+
+ WT_TRET(__wt_fair_unlock(session, &page->page_lock));
WT_RET(ret);
}
return (0);