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