5108 Marko Mäkelä 2012-11-28 [merge]
Merge mysql-5.6 to mysql-trunk.
modified:
storage/innobase/buf/buf0buf.cc
5107 kevin.lewis@stripped 2012-11-27 [merge]
merge
=== modified file 'storage/innobase/buf/buf0buf.cc'
--- a/storage/innobase/buf/buf0buf.cc revid:kevin.lewis@stripped
+++ b/storage/innobase/buf/buf0buf.cc revid:marko.makela@oracle.com-20121128071710-tik9ch84mhjgekx6
@@ -2698,17 +2698,29 @@ wait_until_unfixed:
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. */
/* Page checksum verification is already done when
the page is read from disk. Hence page checksum
- verification is not necesary when decompressing the page. */
+ verification is not necessary when decompressing the page. */
ut_a(buf_zip_decompress(block, FALSE));
if (UNIV_LIKELY(!recv_no_ibuf_operations)) {
- ibuf_merge_or_delete_for_page(block, space, offset,
- zip_size, TRUE);
+ unsigned accessed;
+
+ mutex_enter(&block->mutex);
+ accessed = buf_page_is_accessed(&block->page);
+ mutex_exit(&block->mutex);
+
+ if (accessed) {
+#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. */
No bundle (reason: useless for push emails).| Thread |
|---|
| • bzr push into mysql-trunk branch (marko.makela:5107 to 5108) | marko.makela | 28 Nov |