From 9441aa22eabf4dc5f61bd092bb908a873eeb876f Mon Sep 17 00:00:00 2001 From: "aivanov@mysql.com" <> Date: Wed, 26 Jul 2006 08:26:07 +0400 Subject: Applied innodb-5.0-ss660 snapshot. --- innobase/btr/btr0cur.c | 3 ++- innobase/ibuf/ibuf0ibuf.c | 15 ++++++--------- innobase/include/sync0rw.ic | 2 +- 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 -- cgit v1.2.1