There's a similar/related chunk of code in __wt_cache_read, where the parent page's WT_REF is set to reference the created page.  I'd suggest this change:

```
diff --git a/src/btree/bt_page.c b/src/btree/bt_page.c
index 8d8c15e..0ab548f 100644
--- a/src/btree/bt_page.c
+++ b/src/btree/bt_page.c
@@ -126,8 +126,6 @@ __wt_page_inmem(
         * generation wasn't set, that is, remained 0).
         */
        WT_RET(__wt_calloc_def(session, 1, &page));
-       page->parent = parent;
-       page->ref = parent_ref;
        page->dsk = dsk;
        page->read_gen = __wt_cache_read_gen(session);
        page->type = dsk->type;
@@ -162,6 +160,10 @@ __wt_page_inmem(
 
        __wt_cache_page_read(session, page, inmem_size);
 
+       /* Link the new page into the parent. */
+       if (parent_ref != NULL)
+               WT_LINK_PAGE(parent, parent_ref, page);
+
        *pagep = page;
        return (0);
 
diff --git a/src/btree/bt_read.c b/src/btree/bt_read.c
index ab3390f..3ff07cc 100644
--- a/src/btree/bt_read.c
+++ b/src/btree/bt_read.c
@@ -116,7 +116,6 @@ __wt_cache_read(WT_SESSION_IMPL *session, WT_PAGE *parent, WT_REF *ref)
        WT_VERBOSE_ERR(session, read,
            "page %p: %s", page, __wt_page_type_string(page->type));
 
-       ref->page = page;
        WT_PUBLISH(ref->state, WT_REF_MEM);
        return (0);
```

That way the code that's responsible for linking the element into the tree is either __wt_btree_leaf_create, or __wt_page_inmem.