summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraivanov@mysql.com <>2006-07-26 08:26:07 +0400
committeraivanov@mysql.com <>2006-07-26 08:26:07 +0400
commit9441aa22eabf4dc5f61bd092bb908a873eeb876f (patch)
treec0c4b00da4e4a17001a2dbc33b0dfef6c84b554b
parente7548d2321b3bc5716ce355df9f35059cf73515e (diff)
downloadmariadb-git-9441aa22eabf4dc5f61bd092bb908a873eeb876f.tar.gz
Applied innodb-5.0-ss660 snapshot.
-rw-r--r--innobase/btr/btr0cur.c3
-rw-r--r--innobase/ibuf/ibuf0ibuf.c15
-rw-r--r--innobase/include/sync0rw.ic2
3 files changed, 9 insertions, 11 deletions
diff --git a/innobase/btr/btr0cur.c b/innobase/btr/btr0cur.c
index 3d7b6fffb52..d51a090be75 100644
--- a/innobase/btr/btr0cur.c
+++ b/innobase/btr/btr0cur.c
@@ -439,7 +439,7 @@ retry_page_get:
if (UNIV_LIKELY_NULL(heap)) {
mem_heap_free(heap);
}
- return;
+ goto func_exit;
}
/* Insert to the insert buffer did not succeed:
@@ -555,6 +555,7 @@ retry_page_get:
|| mode != PAGE_CUR_LE);
}
+func_exit:
if (has_search_latch) {
rw_lock_s_lock(&btr_search_latch);
diff --git a/innobase/ibuf/ibuf0ibuf.c b/innobase/ibuf/ibuf0ibuf.c
index e4694ed52ae..b95f0a1832b 100644
--- a/innobase/ibuf/ibuf0ibuf.c
+++ b/innobase/ibuf/ibuf0ibuf.c
@@ -950,14 +950,11 @@ ibool
ibuf_fixed_addr_page(
/*=================*/
/* out: TRUE if a fixed address ibuf i/o page */
+ ulint space, /* in: space id */
ulint page_no)/* in: page number */
{
- if ((ibuf_bitmap_page(page_no))
- || (page_no == IBUF_TREE_ROOT_PAGE_NO)) {
- return(TRUE);
- }
-
- return(FALSE);
+ return((space == 0 && page_no == IBUF_TREE_ROOT_PAGE_NO)
+ || ibuf_bitmap_page(page_no));
}
/***************************************************************************
@@ -981,7 +978,7 @@ ibuf_page(
return(FALSE);
}
- if (ibuf_fixed_addr_page(page_no)) {
+ if (ibuf_fixed_addr_page(space, page_no)) {
return(TRUE);
}
@@ -1029,7 +1026,7 @@ ibuf_page_low(
return(FALSE);
}
#endif
- if (ibuf_fixed_addr_page(page_no)) {
+ if (ibuf_fixed_addr_page(space, page_no)) {
return(TRUE);
}
@@ -3052,7 +3049,7 @@ ibuf_merge_or_delete_for_page(
return;
}
#endif
- if (ibuf_fixed_addr_page(page_no) || fsp_descr_page(page_no)
+ if (ibuf_fixed_addr_page(space, page_no) || fsp_descr_page(page_no)
|| trx_sys_hdr_page(space, page_no)) {
return;
}
diff --git a/innobase/include/sync0rw.ic b/innobase/include/sync0rw.ic
index b1ae636010a..9e15475ae53 100644
--- a/innobase/include/sync0rw.ic
+++ b/innobase/include/sync0rw.ic
@@ -362,7 +362,7 @@ rw_lock_s_unlock_func(
/* Reset the shared lock by decrementing the reader count */
- ut_ad(lock->reader_count > 0);
+ ut_a(lock->reader_count > 0);
lock->reader_count--;
#ifdef UNIV_SYNC_DEBUG