diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2019-04-04 19:46:23 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2019-04-04 20:25:39 +0300 |
commit | 8fff98a4cf5a2e98c34a6a76086ecff0e8e0a353 (patch) | |
tree | c52a364d86a5c3efc25bfcda4f1e69db08e1adaf | |
parent | 1c05ec87945c9795365f69ccbcca114e0d408313 (diff) | |
download | mariadb-git-8fff98a4cf5a2e98c34a6a76086ecff0e8e0a353.tar.gz |
Clean up recv_recover_page() further
-rw-r--r-- | storage/innobase/log/log0recv.cc | 25 |
1 files changed, 7 insertions, 18 deletions
diff --git a/storage/innobase/log/log0recv.cc b/storage/innobase/log/log0recv.cc index aacf6ae38a7..480d4e27bb4 100644 --- a/storage/innobase/log/log0recv.cc +++ b/storage/innobase/log/log0recv.cc @@ -1997,10 +1997,6 @@ static void recv_recover_page(buf_block_t* block, mtr_t* mtr) page_zip_des_t* page_zip; recv_t* recv; byte* buf; - lsn_t start_lsn; - lsn_t end_lsn; - lsn_t page_lsn; - lsn_t page_newest_lsn; mtr_t local_mtr; mtr_t* use_mtr = mtr; @@ -2079,21 +2075,16 @@ skip: buf_block_dbg_add_level(block, SYNC_NO_ORDER_CHECK); } - /* Read the newest modification lsn from the page */ - page_lsn = mach_read_from_8(page + FIL_PAGE_LSN); - /* It may be that the page has been modified in the buffer pool: read the newest modification lsn there */ - - page_newest_lsn = buf_page_get_newest_modification(&block->page); - - if (page_newest_lsn) { - - page_lsn = page_newest_lsn; + lsn_t page_lsn = buf_page_get_newest_modification(&block->page); + if (!page_lsn) { + /* Read the newest modification lsn from the page */ + page_lsn = mach_read_from_8(page + FIL_PAGE_LSN); } - bool modification_to_page = false; - start_lsn = end_lsn = 0; + bool modification_to_page = false; // not mtr_t::has_modifications()! + lsn_t start_lsn = 0, end_lsn = 0; recv = UT_LIST_GET_FIRST(recv_addr->rec_list); @@ -2156,7 +2147,7 @@ skip: recv_addr->space, recv_addr->page_no, true, block, use_mtr); - lsn_t end_lsn = recv->start_lsn + recv->len; + end_lsn = recv->start_lsn + recv->len; mach_write_to_8(FIL_PAGE_LSN + page, end_lsn); mach_write_to_8(UNIV_PAGE_SIZE - FIL_PAGE_END_LSN_OLD_CHKSUM @@ -2185,8 +2176,6 @@ skip: #endif /* UNIV_ZIP_DEBUG */ if (modification_to_page) { - ut_a(block); - log_flush_order_mutex_enter(); buf_flush_recv_note_modification(block, start_lsn, end_lsn); log_flush_order_mutex_exit(); |