summaryrefslogtreecommitdiff
path: root/storage/innobase/sync/sync0sync.c
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@oracle.com>2011-08-22 17:12:27 +0300
committerMarko Mäkelä <marko.makela@oracle.com>2011-08-22 17:12:27 +0300
commit42ff786cf9bc2e730efd7254545fb2caa0115546 (patch)
tree5fa1606af3e784d854517456886d32bdb64dbb67 /storage/innobase/sync/sync0sync.c
parent73312bddb3b0aa07e66f6ab118e5902f8f5e5728 (diff)
parent49ee12d03b763a460cfcc371566465019a4dc067 (diff)
downloadmariadb-git-42ff786cf9bc2e730efd7254545fb2caa0115546.tar.gz
Merge mysql-5.1 to mysql-5.5.
Diffstat (limited to 'storage/innobase/sync/sync0sync.c')
-rw-r--r--storage/innobase/sync/sync0sync.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/storage/innobase/sync/sync0sync.c b/storage/innobase/sync/sync0sync.c
index 3888fe4c657..5de8dfe0a6f 100644
--- a/storage/innobase/sync/sync0sync.c
+++ b/storage/innobase/sync/sync0sync.c
@@ -1329,7 +1329,13 @@ sync_thread_add_level(
TRUE));
break;
case SYNC_IBUF_TREE_NODE_NEW:
- ut_a(sync_thread_levels_contain(array, SYNC_IBUF_MUTEX));
+ /* ibuf_add_free_page() allocates new pages for the
+ change buffer while only holding the tablespace
+ x-latch. These pre-allocated new pages may only be
+ taken in use while holding ibuf_mutex, in
+ btr_page_alloc_for_ibuf(). */
+ ut_a(sync_thread_levels_contain(array, SYNC_IBUF_MUTEX)
+ || sync_thread_levels_contain(array, SYNC_FSP));
break;
case SYNC_IBUF_INDEX_TREE:
if (sync_thread_levels_contain(array, SYNC_FSP)) {