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
This commit is contained in:
parent
91f5c5e337
commit
18995bb1c6
@ -2676,7 +2676,11 @@ 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
|
||||||
Linux seem to wipe over the page end */
|
Linux seem to wipe over the page end */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user