218
218
"InnoDB: corruption. If this happens in an"
219
219
" InnoDB database recovery, see\n"
220
220
"InnoDB: http://dev.mysql.com/doc/refman/5.1/en/"
221
"forcing-recovery.html\n"
221
"forcing-innodb-recovery.html\n"
222
222
"InnoDB: how to force recovery.\n",
224
224
buf_pool->high_end);
257
257
"InnoDB: corruption. If this happens in an"
258
258
" InnoDB database recovery, see\n"
259
259
"InnoDB: http://dev.mysql.com/doc/refman/5.1/en/"
260
"forcing-recovery.html\n"
260
"forcing-innodb-recovery.html\n"
261
261
"InnoDB: how to force recovery.\n",
262
262
ptr, buf_pool->frame_zero,
263
263
buf_pool->high_end);
563
563
/************************************************************************
564
Tries to get the page, but if file io is required, releases all latches
565
in mtr down to the given savepoint. If io is required, this function
566
retrieves the page to buffer buf_pool, but does not bufferfix it or latch
570
buf_page_get_release_on_io(
571
/*=======================*/
572
/* out: pointer to the frame, or NULL
573
if not in buffer buf_pool */
574
ulint space, /* in: space id */
575
ulint offset, /* in: offset of the page within space
576
in units of a page */
577
buf_frame_t* guess, /* in: guessed frame or NULL */
578
ulint rw_latch, /* in: RW_X_LATCH, RW_S_LATCH,
580
ulint savepoint, /* in: mtr savepoint */
581
mtr_t* mtr) /* in: mtr */
585
frame = buf_page_get_gen(space, offset, rw_latch, guess,
594
/* The page was not in the buffer buf_pool: release the latches
595
down to the savepoint */
597
mtr_rollback_to_savepoint(mtr, savepoint);
599
buf_page_get(space, offset, RW_S_LATCH, mtr);
601
/* When we get here, the page is in buffer, but we release
602
the latches again down to the savepoint, before returning */
604
mtr_rollback_to_savepoint(mtr, savepoint);
609
/************************************************************************
610
564
Decrements the bufferfix count of a buffer control block and releases
611
565
a latch, if specified. */
660
614
ulint level __attribute__((unused))) /* in: latching order
663
sync_thread_add_level(&(buf_block_align(frame)->lock), level);
617
sync_thread_add_level(&(buf_block_align(frame)->lock), level, FALSE);
665
619
#endif /* UNIV_SYNC_DEBUG */