summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Cahill <michael.cahill@wiredtiger.com>2012-04-18 15:45:06 +1000
committerMichael Cahill <michael.cahill@wiredtiger.com>2012-04-18 15:45:06 +1000
commite9bd1b3cbeff3239b64160e50dba81a32484c234 (patch)
tree7b5b798b3b1f5f87e1ae0821cd4095faded25551
parent33595efafcb9de71b12135c477c0197c29cc01bd (diff)
downloadmongo-e9bd1b3cbeff3239b64160e50dba81a32484c234.tar.gz
Don't update a WT_REF after it has been unlocked.
-rw-r--r--src/btree/rec_evict.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/btree/rec_evict.c b/src/btree/rec_evict.c
index 59263b6b558..064db7b669b 100644
--- a/src/btree/rec_evict.c
+++ b/src/btree/rec_evict.c
@@ -91,9 +91,11 @@ err: /*
static int
__rec_page_clean_update(WT_SESSION_IMPL *session, WT_PAGE *page, int single)
{
+ WT_ASSERT(session, single || page->ref->state == WT_REF_LOCKED);
+
/* Update the relevant WT_REF structure. */
- WT_PUBLISH(page->ref->state, WT_REF_DISK);
page->ref->page = NULL;
+ WT_PUBLISH(page->ref->state, WT_REF_DISK);
return (__rec_discard_page(session, page, single));
}
@@ -108,7 +110,6 @@ __rec_root_clean_update(WT_SESSION_IMPL *session, WT_PAGE *page, int single)
WT_BTREE *btree;
btree = session->btree;
-
btree->root_page = NULL;
return (__rec_discard_page(session, page, single));