diff options
author | Sergei Golubchik <sergii@pisem.net> | 2013-05-08 09:52:54 +0200 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2013-05-08 09:52:54 +0200 |
commit | bcfa90b471b4a04ba9eb9dccd88a41c8f72cd38a (patch) | |
tree | 936f2f6cb3a07a867bd8e7f51fdc4609abff1f82 /fsp/fsp0fsp.c | |
parent | 086b54c281eaf5470b0424d926492d7ee25e4916 (diff) | |
download | mariadb-git-bcfa90b471b4a04ba9eb9dccd88a41c8f72cd38a.tar.gz |
Percona-Server-5.5.30-rel30.2.tar.gz
Diffstat (limited to 'fsp/fsp0fsp.c')
-rw-r--r-- | fsp/fsp0fsp.c | 45 |
1 files changed, 15 insertions, 30 deletions
diff --git a/fsp/fsp0fsp.c b/fsp/fsp0fsp.c index cf066404555..24d5183f880 100644 --- a/fsp/fsp0fsp.c +++ b/fsp/fsp0fsp.c @@ -317,10 +317,7 @@ fsp_get_space_header( block = buf_page_get(id, zip_size, 0, RW_X_LATCH, mtr); - if (srv_pass_corrupt_table && !block) { - return(0); - } - ut_a(block); + SRV_CORRUPT_TABLE_CHECK(block, return(0);); header = FSP_HEADER_OFFSET + buf_block_get_frame(block); buf_block_dbg_add_level(block, SYNC_FSP_PAGE); @@ -731,10 +728,7 @@ xdes_get_descriptor( block = buf_page_get(space, zip_size, 0, RW_X_LATCH, mtr); - if (srv_pass_corrupt_table && !block) { - return(0); - } - ut_a(block); + SRV_CORRUPT_TABLE_CHECK(block, return(0);); buf_block_dbg_add_level(block, SYNC_FSP_PAGE); @@ -1882,10 +1876,7 @@ fsp_seg_inode_page_find_free( { fseg_inode_t* inode; - if (srv_pass_corrupt_table && !page) { - return(ULINT_UNDEFINED); - } - ut_a(page); + SRV_CORRUPT_TABLE_CHECK(page, return(ULINT_UNDEFINED);); for (; i < FSP_SEG_INODES_PER_PAGE(zip_size); i++) { @@ -1999,10 +1990,7 @@ fsp_alloc_seg_inode( page = buf_block_get_frame(block); - if (srv_pass_corrupt_table && !page) { - return(0); - } - ut_a(page); + SRV_CORRUPT_TABLE_CHECK(page, return(0);); n = fsp_seg_inode_page_find_free(page, 0, zip_size, mtr); @@ -2097,10 +2085,7 @@ fseg_inode_try_get( inode = fut_get_ptr(space, zip_size, inode_addr, RW_X_LATCH, mtr); - if (srv_pass_corrupt_table && !inode) { - return(0); - } - ut_a(inode); + SRV_CORRUPT_TABLE_CHECK(inode, return(0);); if (UNIV_UNLIKELY(!mach_read_from_8(inode + FSEG_ID))) { @@ -2128,7 +2113,7 @@ fseg_inode_get( { fseg_inode_t* inode = fseg_inode_try_get(header, space, zip_size, mtr); - ut_a(srv_pass_corrupt_table || inode); + SRV_CORRUPT_TABLE_CHECK(inode, ; /* do nothing */); return(inode); } @@ -3320,12 +3305,12 @@ fseg_free_page_low( descr = xdes_get_descriptor(space, zip_size, page, mtr); - if (srv_pass_corrupt_table && !descr) { + SRV_CORRUPT_TABLE_CHECK(descr, + { /* The page may be corrupt. pass it. */ return; - } + }); - ut_a(descr); if (xdes_get_bit(descr, XDES_FREE_BIT, page % FSP_EXTENT_SIZE, mtr)) { fputs("InnoDB: Dump of the tablespace extent descriptor: ", stderr); @@ -3574,15 +3559,15 @@ fseg_free_step( descr = xdes_get_descriptor(space, zip_size, header_page, mtr); - if (srv_pass_corrupt_table && !descr) { + SRV_CORRUPT_TABLE_CHECK(descr, + { /* The page may be corrupt. pass it. */ return(TRUE); - } + }); /* Check that the header resides on a page which has not been freed yet */ - ut_a(descr); ut_a(xdes_get_bit(descr, XDES_FREE_BIT, header_page % FSP_EXTENT_SIZE, mtr) == FALSE); inode = fseg_inode_try_get(header, space, zip_size, mtr); @@ -3663,11 +3648,11 @@ fseg_free_step_not_header( inode = fseg_inode_get(header, space, zip_size, mtr); - if (srv_pass_corrupt_table && !inode) { + SRV_CORRUPT_TABLE_CHECK(inode, + { /* ignore the corruption */ return(TRUE); - } - ut_a(inode); + }); descr = fseg_get_first_extent(inode, space, zip_size, mtr); |