os0file.c:

  Check that writes to data files always happen in to addresses divisible by 16 kB, and the chunk size is also divisible by 16 kB; a user reported 2 corrupt pages from Linux-2.4.20 where an index page seemed displaced
parent 91f5c5e3
...@@ -2676,6 +2676,10 @@ consecutive_loop: ...@@ -2676,6 +2676,10 @@ consecutive_loop:
/* Do the i/o with ordinary, synchronous i/o functions: */ /* Do the i/o with ordinary, synchronous i/o functions: */
if (slot->type == OS_FILE_WRITE) { if (slot->type == OS_FILE_WRITE) {
if (array == os_aio_write_array) { if (array == os_aio_write_array) {
if ((total_len % UNIV_PAGE_SIZE != 0)
|| (slot->offset % UNIV_PAGE_SIZE != 0)) {
ut_a(0);
}
/* Do a 'last millisecond' check that the page end /* Do a 'last millisecond' check that the page end
is sensible; reported page checksum errors from is sensible; reported page checksum errors from
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment