mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
merge from 5.1
This commit is contained in:
commit
77604d1b95
1 changed files with 14 additions and 7 deletions
|
@ -2448,22 +2448,29 @@ wait_until_unfixed:
|
|||
|
||||
UNIV_MEM_INVALID(bpage, sizeof *bpage);
|
||||
|
||||
buf_pool->n_pend_unzip++;
|
||||
buf_pool_mutex_exit(buf_pool);
|
||||
|
||||
access_time = buf_page_is_accessed(&block->page);
|
||||
mutex_exit(&block->mutex);
|
||||
mutex_exit(&buf_pool->zip_mutex);
|
||||
buf_pool->n_pend_unzip++;
|
||||
|
||||
buf_pool_mutex_exit(buf_pool);
|
||||
|
||||
buf_page_free_descriptor(bpage);
|
||||
|
||||
/* Decompress the page and apply buffered operations
|
||||
while not holding buf_pool->mutex or block->mutex. */
|
||||
/* Decompress the page while not holding
|
||||
buf_pool->mutex or block->mutex. */
|
||||
success = buf_zip_decompress(block, srv_use_checksums);
|
||||
ut_a(success);
|
||||
|
||||
if (UNIV_LIKELY(!recv_no_ibuf_operations)) {
|
||||
ibuf_merge_or_delete_for_page(block, space, offset,
|
||||
zip_size, TRUE);
|
||||
if (access_time) {
|
||||
#ifdef UNIV_IBUF_COUNT_DEBUG
|
||||
ut_a(ibuf_count_get(space, offset) == 0);
|
||||
#endif /* UNIV_IBUF_COUNT_DEBUG */
|
||||
} else {
|
||||
ibuf_merge_or_delete_for_page(
|
||||
block, space, offset, zip_size, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
/* Unfix and unlatch the block. */
|
||||
|
|
Loading…
Reference in a new issue