diff options
author | unknown <aivanov@mysql.com> | 2006-07-26 08:26:07 +0400 |
---|---|---|
committer | unknown <aivanov@mysql.com> | 2006-07-26 08:26:07 +0400 |
commit | 820840a02682dd12de5090db608ff669a7455008 (patch) | |
tree | c0c4b00da4e4a17001a2dbc33b0dfef6c84b554b /innobase/ibuf | |
parent | d8bb59fc2f57de2a7676154a401ea16b70f8f773 (diff) | |
download | mariadb-git-820840a02682dd12de5090db608ff669a7455008.tar.gz |
Applied innodb-5.0-ss660 snapshot.
innobase/btr/btr0cur.c:
Applied innodb-5.0-ss660 snapshot.
btr_cur_search_to_nth_level(): Reacquire btr_search_latch after
inserting to the insert buffer. This was noticed while analyzing
Bug#19081 but this shold not fix this bug since according to
Heikki, btr_search_latch is not reserved during an insert.
innobase/ibuf/ibuf0ibuf.c:
Applied innodb-5.0-ss660 snapshot.
ibuf_fixed_addr_page(): Add parameter space. As the insert buffer
B-tree is only located in the system tablespace (space 0),
IBUF_TREE_ROOT_PAGE_NO is only special in space 0.
innobase/include/sync0rw.ic:
Applied innodb-5.0-ss660 snapshot.
rw_lock_s_unlock_func(): Change a debug assertion to a
production assertion in order to track down Bug#19081.
Diffstat (limited to 'innobase/ibuf')
-rw-r--r-- | innobase/ibuf/ibuf0ibuf.c | 15 |
1 files changed, 6 insertions, 9 deletions
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; } |