From 1b60442fec1e7c5dfa25915d0fa7fd8aa6c4ea88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 8 Oct 2026 23:19:41 +0300 Subject: [PATCH] fixup! 33b746888e75892654df7ffa3a696512656a631d --- storage/innobase/handler/backup_innodb.cc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/storage/innobase/handler/backup_innodb.cc b/storage/innobase/handler/backup_innodb.cc index 6c75a13d9b0..c5b94740819 100644 --- a/storage/innobase/handler/backup_innodb.cc +++ b/storage/innobase/handler/backup_innodb.cc @@ -769,12 +769,16 @@ public: { int err{-1}; lsn_t write_lsn; + lsn_t last; const uint bs_1{log_sys.write_size - 1}; #ifdef HAVE_PMEM if (log_sys.is_mmap()) { write_lsn= log_get_lsn(); mutex.wr_lock(); + last= ctx.last_lsn; + if (!last) + goto err_exit; } else #endif @@ -785,7 +789,8 @@ public: log_sys.latch.rd_unlock(); /* Round down to the start of a block. */ write_lsn-= uint(write_lsn - ctx.tracked->first_lsn) & bs_1; - switch (ctx.last_lsn) { + last= ctx.last_lsn; + switch (last) { case 0: err_exit: mutex.wr_unlock(); @@ -794,15 +799,14 @@ public: case LSN_MAX: break; default: - ut_ad(write_lsn <= ctx.last_lsn); - if (write_lsn != ctx.last_lsn) + ut_ad(write_lsn <= last); + if (write_lsn != last) write_lsn+= bs_1 + 1; } } ut_ad(!ctx.last_hardlink.load(std::memory_order_relaxed)); const tracked_log &tracked{*ctx.tracked}; - const lsn_t last{ctx.last_lsn}; const lsn_t lsn= std::min(std::min(last, write_lsn), tracked.first_lsn + tracked.file_size - log_sys.START_OFFSET);