diff options
Diffstat (limited to 'storage/innobase/buf/buf0dblwr.cc')
-rw-r--r-- | storage/innobase/buf/buf0dblwr.cc | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/storage/innobase/buf/buf0dblwr.cc b/storage/innobase/buf/buf0dblwr.cc index c4f2280a1f2..c0cf26b869c 100644 --- a/storage/innobase/buf/buf0dblwr.cc +++ b/storage/innobase/buf/buf0dblwr.cc @@ -392,13 +392,7 @@ buf_dblwr_init_or_load_pages( doublewrite = read_buf + TRX_SYS_DOUBLEWRITE; - if (mach_read_from_4(read_buf + FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION) != 0) { - byte* tmp = fil_space_decrypt((ulint)TRX_SYS_SPACE, - read_buf + UNIV_PAGE_SIZE, - univ_page_size, /* page size */ - read_buf); - doublewrite = tmp + TRX_SYS_DOUBLEWRITE; - } + /* TRX_SYS_PAGE_NO is not encrypted see fil_crypt_rotate_page() */ if (mach_read_from_4(doublewrite + TRX_SYS_DOUBLEWRITE_MAGIC) == TRX_SYS_DOUBLEWRITE_MAGIC_N) { @@ -614,9 +608,9 @@ buf_dblwr_process(void) } if (fil_space_verify_crypt_checksum( - read_buf, page_size) + read_buf, page_size, space_id, page_no) || !buf_page_is_corrupted( - true, read_buf, page_size, false)) { + true, read_buf, page_size, space)) { /* The page is good; there is no need to consult the doublewrite buffer. */ continue; @@ -638,8 +632,9 @@ buf_dblwr_process(void) NULL, page, UNIV_PAGE_SIZE, NULL, true); } - if (!fil_space_verify_crypt_checksum(page, page_size) - && buf_page_is_corrupted(true, page, page_size, false)) { + if (!fil_space_verify_crypt_checksum(page, page_size, + space_id, page_no) + && buf_page_is_corrupted(true, page, page_size, space)) { if (!is_all_zero) { ib::warn() << "A doublewrite copy of page " << page_id << " is corrupted."; |