summaryrefslogtreecommitdiff
path: root/storage/xtradb/log/log0recv.c
diff options
context:
space:
mode:
Diffstat (limited to 'storage/xtradb/log/log0recv.c')
-rw-r--r--storage/xtradb/log/log0recv.c34
1 files changed, 18 insertions, 16 deletions
diff --git a/storage/xtradb/log/log0recv.c b/storage/xtradb/log/log0recv.c
index 4e179afd50c..9c26bd8eac6 100644
--- a/storage/xtradb/log/log0recv.c
+++ b/storage/xtradb/log/log0recv.c
@@ -553,7 +553,8 @@ recv_copy_group(
}
log_group_read_log_seg(LOG_RECOVER, log_sys->buf,
- up_to_date_group, start_lsn, end_lsn);
+ up_to_date_group, start_lsn, end_lsn,
+ FALSE);
len = (ulint) (end_lsn - start_lsn);
@@ -597,7 +598,7 @@ recv_synchronize_groups(
ut_a(start_lsn != end_lsn);
log_group_read_log_seg(LOG_RECOVER, recv_sys->last_block,
- up_to_date_group, start_lsn, end_lsn);
+ up_to_date_group, start_lsn, end_lsn, FALSE);
group = UT_LIST_GET_FIRST(log_sys->log_groups);
@@ -1716,19 +1717,6 @@ recv_recover_page_func(
}
#endif /* UNIV_ZIP_DEBUG */
- mutex_enter(&(recv_sys->mutex));
-
- if (recv_max_page_lsn < page_lsn) {
- recv_max_page_lsn = page_lsn;
- }
-
- recv_addr->state = RECV_PROCESSED;
-
- ut_a(recv_sys->n_addrs);
- recv_sys->n_addrs--;
-
- mutex_exit(&(recv_sys->mutex));
-
#ifndef UNIV_HOTBACKUP
if (modification_to_page) {
ut_a(block);
@@ -1745,6 +1733,20 @@ recv_recover_page_func(
mtr.modifications = FALSE;
mtr_commit(&mtr);
+
+ mutex_enter(&(recv_sys->mutex));
+
+ if (recv_max_page_lsn < page_lsn) {
+ recv_max_page_lsn = page_lsn;
+ }
+
+ recv_addr->state = RECV_PROCESSED;
+
+ ut_a(recv_sys->n_addrs);
+ recv_sys->n_addrs--;
+
+ mutex_exit(&(recv_sys->mutex));
+
}
#ifndef UNIV_HOTBACKUP
@@ -2894,7 +2896,7 @@ recv_group_scan_log_recs(
end_lsn = start_lsn + RECV_SCAN_SIZE;
log_group_read_log_seg(LOG_RECOVER, log_sys->buf,
- group, start_lsn, end_lsn);
+ group, start_lsn, end_lsn, FALSE);
finished = recv_scan_log_recs(
(buf_pool_get_n_pages()