diff --git a/buf/buf0flu.c b/buf/buf0flu.c index 71da1963be2..669392e2299 100644 --- a/buf/buf0flu.c +++ b/buf/buf0flu.c @@ -503,9 +503,7 @@ buf_flush_init_for_writing( /*=======================*/ byte* page, /* in/out: page */ void* page_zip_, /* in/out: compressed page, or NULL */ - dulint newest_lsn, /* in: newest modification lsn to the page */ - ulint space, /* in: space id */ - ulint page_no) /* in: page number */ + dulint newest_lsn) /* in: newest modification lsn to the page */ { if (page_zip_) { page_zip_des_t* page_zip = page_zip_; @@ -525,18 +523,8 @@ buf_flush_init_for_writing( /* fall through */ case FIL_PAGE_TYPE_ZBLOB: case FIL_PAGE_INDEX: - mach_write_to_4(page - + FIL_PAGE_OFFSET, page_no); - mach_write_to_4(page - + FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID, - space); - mach_write_to_4(page_zip->data - + FIL_PAGE_OFFSET, page_no); mach_write_to_8(page_zip->data + FIL_PAGE_LSN, newest_lsn); - mach_write_to_4(page_zip->data - + FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID, - space); memset(page_zip->data + FIL_PAGE_FILE_FLUSH_LSN, 0, 8); mach_write_to_4(page_zip->data + FIL_PAGE_SPACE_OR_CHKSUM, @@ -555,10 +543,6 @@ buf_flush_init_for_writing( mach_write_to_8(page + UNIV_PAGE_SIZE - FIL_PAGE_END_LSN_OLD_CHKSUM, newest_lsn); - /* Write the page number and the space id */ - - mach_write_to_4(page + FIL_PAGE_OFFSET, page_no); - mach_write_to_4(page + FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID, space); /* Store the new formula checksum */ @@ -612,8 +596,7 @@ buf_flush_write_block_low( #endif buf_flush_init_for_writing(block->frame, buf_frame_get_page_zip(block->frame), - block->newest_modification, - block->space, block->offset); + block->newest_modification); if (!srv_use_doublewrite_buf || !trx_doublewrite) { fil_io(OS_FILE_WRITE | OS_AIO_SIMULATED_WAKE_LATER, FALSE, block->space, block->page_zip.size, diff --git a/fil/fil0fil.c b/fil/fil0fil.c index 79591ab4efb..6eb80060b37 100644 --- a/fil/fil0fil.c +++ b/fil/fil0fil.c @@ -2651,18 +2651,17 @@ error_exit2: memset(page, '\0', UNIV_PAGE_SIZE); fsp_header_init_fields(page, *space_id, zip_size); + mach_write_to_4(page + FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID, *space_id); if (!zip_size) { - buf_flush_init_for_writing(page, NULL, - ut_dulint_zero, *space_id, 0); + buf_flush_init_for_writing(page, NULL, ut_dulint_zero); ret = os_file_write(path, file, page, 0, 0, UNIV_PAGE_SIZE); } else { page_zip_des_t page_zip; page_zip.size = zip_size; page_zip.data = page + UNIV_PAGE_SIZE; page_zip.n_blobs = page_zip.m_start = page_zip.m_end = 0; - buf_flush_init_for_writing(page, &page_zip, - ut_dulint_zero, *space_id, 0); + buf_flush_init_for_writing(page, &page_zip, ut_dulint_zero); ret = os_file_write(path, file, page_zip.data, 0, 0, zip_size); } @@ -2746,7 +2745,6 @@ fil_reset_too_high_lsns( ulint space_id; ib_longlong file_size; ib_longlong offset; - ulint page_no; ulint zip_size; ibool success; @@ -2832,19 +2830,15 @@ fil_reset_too_high_lsns( if (ut_dulint_cmp(mach_read_from_8(page + FIL_PAGE_LSN), current_lsn) > 0) { /* We have to reset the lsn */ - space_id = mach_read_from_4( - page + FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID); - page_no = mach_read_from_4(page + FIL_PAGE_OFFSET); if (zip_size) { memcpy(page + UNIV_PAGE_SIZE, page, zip_size); buf_flush_init_for_writing( page, page + UNIV_PAGE_SIZE, - current_lsn, space_id, page_no); + current_lsn); } else { buf_flush_init_for_writing( - page, NULL, - current_lsn, space_id, page_no); + page, NULL, current_lsn); } success = os_file_write(filepath, file, page, (ulint)(offset & 0xFFFFFFFFUL), diff --git a/fsp/fsp0fsp.c b/fsp/fsp0fsp.c index 620551c78e7..91cb8a7f1bd 100644 --- a/fsp/fsp0fsp.c +++ b/fsp/fsp0fsp.c @@ -826,14 +826,25 @@ fsp_init_file_page_low( if (UNIV_LIKELY_NULL(page_zip)) { memset(page, 0, UNIV_PAGE_SIZE); memset(page_zip->data, 0, page_zip->size); + mach_write_to_4(page + FIL_PAGE_OFFSET, block->offset); + mach_write_to_4(page + + FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID, + block->space); + mach_write_to_4(page_zip->data + + FIL_PAGE_OFFSET, block->offset); + mach_write_to_4(page_zip->data + + FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID, + block->space); return; } #ifdef UNIV_BASIC_LOG_DEBUG memset(page, 0xff, UNIV_PAGE_SIZE); #endif - memset(page + UNIV_PAGE_SIZE - FIL_PAGE_END_LSN_OLD_CHKSUM, 0, 8); + mach_write_to_4(page + FIL_PAGE_OFFSET, block->offset); memset(page + FIL_PAGE_LSN, 0, 8); + mach_write_to_4(page + FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID, block->space); + memset(page + UNIV_PAGE_SIZE - FIL_PAGE_END_LSN_OLD_CHKSUM, 0, 8); } /*************************************************************** diff --git a/include/buf0flu.h b/include/buf0flu.h index 27217944e6f..d5f872ef673 100644 --- a/include/buf0flu.h +++ b/include/buf0flu.h @@ -36,9 +36,7 @@ buf_flush_init_for_writing( /*=======================*/ byte* page, /* in/out: page */ void* page_zip, /* in/out: compressed page, or NULL */ - dulint newest_lsn, /* in: newest modification lsn to the page */ - ulint space, /* in: space id */ - ulint page_no); /* in: page number */ + dulint newest_lsn); /* in: newest modification lsn to the page */ /*********************************************************************** This utility flushes dirty blocks from the end of the LRU list or flush_list. NOTE 1: in the case of an LRU flush the calling thread may own latches to diff --git a/log/log0recv.c b/log/log0recv.c index 65d21f1d090..d7150d0a3a6 100644 --- a/log/log0recv.c +++ b/log/log0recv.c @@ -1656,8 +1656,7 @@ recv_apply_log_recs_for_backup(void) buf_flush_init_for_writing( block->frame, buf_block_get_page_zip(block), - mach_read_from_8(block->frame + FIL_PAGE_LSN), - recv_addr->space, recv_addr->page_no); + mach_read_from_8(block->frame + FIL_PAGE_LSN)); if (zip_size) { error = fil_io(OS_FILE_WRITE, TRUE,