summaryrefslogtreecommitdiff
path: root/storage/innobase/mtr
diff options
context:
space:
mode:
authorSunny Bains <Sunny.Bains@Oracle.Com>2010-07-22 14:46:12 +1000
committerSunny Bains <Sunny.Bains@Oracle.Com>2010-07-22 14:46:12 +1000
commit424250c26c495418736f0de8c451b81f65fac2fc (patch)
tree0688efc5be4a9c7003c28db898e5f872a1629b34 /storage/innobase/mtr
parente27f4b3a4ba91a62d7b196b7484fe296e1d927a9 (diff)
downloadmariadb-git-424250c26c495418736f0de8c451b81f65fac2fc.tar.gz
Remove code that was added during the flush list mutex refactoring. We cannot
release a dirty page in the middle of a mini-transaction. Replace the code with an assertion that checks for this condition. Original svn revision was: r6330.
Diffstat (limited to 'storage/innobase/mtr')
-rw-r--r--storage/innobase/mtr/mtr0mtr.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/storage/innobase/mtr/mtr0mtr.c b/storage/innobase/mtr/mtr0mtr.c
index b38c5b0d63c..74d04a22b86 100644
--- a/storage/innobase/mtr/mtr0mtr.c
+++ b/storage/innobase/mtr/mtr0mtr.c
@@ -337,9 +337,12 @@ mtr_memo_release(
slot = dyn_array_get_element(memo, offset);
if (object == slot->object && type == slot->type) {
- if (mtr->modifications) {
- mtr_memo_slot_note_modification(mtr, slot);
- }
+
+ /* We cannot release a page that has been written
+ to in the middle of a mini-transaction. */
+
+ ut_ad(!(mtr->modifications
+ && slot->type == MTR_MEMO_PAGE_X_FIX));
mtr_memo_slot_release(mtr, slot);