+ if( !idx ) {
+ if( bt_lockpage (bt, set->page_no, BtLockAccess) )
+ return bt->err;
+
+ if( bt_lockpage (bt, set->page_no, BtLockWrite) )
+ return bt->err;
+
+ if( bt_unlockpage (bt, set->page_no, BtLockAccess) )
+ return bt->err;
+
+ if( bt_mappage (bt, &set->page, set->page_no) )
+ return bt->err;
+
+ rparent->page_no = bt_getid (parent->page->right);
+ rparent->page = bt->temp;
+
+ if( bt_lockpage (bt, rparent->page_no, BtLockAccess) )
+ return bt->err;
+
+ if( bt_lockpage (bt, rparent->page_no, BtLockWrite) )
+ return bt->err;
+
+ if( bt_unlockpage (bt, rparent->page_no, BtLockAccess) )
+ return bt->err;
+
+ if( bt_mappage (bt, &rparent->page, rparent->page_no) )
+ return bt->err;
+
+ if( !rparent->page->kill ) {
+ sibling->page_no = bt_getid (set->page->right);
+
+ if( bt_lockpage (bt, sibling->page_no, BtLockAccess) )
+ return bt->err;
+
+ if( bt_lockpage (bt, sibling->page_no, BtLockWrite) )
+ return bt->err;
+
+ if( bt_unlockpage (bt, sibling->page_no, BtLockAccess) )
+ return bt->err;
+
+ sibling->page = bt->temp2;
+
+ if( bt_mappage (bt, &sibling->page, sibling->page_no) )
+ return bt->err;
+
+ if( !sibling->page->kill )
+ return bt_removeparent (bt, set, parent, sibling, rparent, lvl+1);