summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/src/log/log.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/third_party/wiredtiger/src/log/log.c')
-rw-r--r--src/third_party/wiredtiger/src/log/log.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/third_party/wiredtiger/src/log/log.c b/src/third_party/wiredtiger/src/log/log.c
index 90d269c3b3e..a035a97748b 100644
--- a/src/third_party/wiredtiger/src/log/log.c
+++ b/src/third_party/wiredtiger/src/log/log.c
@@ -236,16 +236,26 @@ __log_fs_write(WT_SESSION_IMPL *session,
* thread as needed.
*/
void
-__wt_log_ckpt(WT_SESSION_IMPL *session, WT_LSN *ckp_lsn)
+__wt_log_ckpt(WT_SESSION_IMPL *session, WT_LSN *ckpt_lsn)
{
WT_CONNECTION_IMPL *conn;
WT_LOG *log;
+ int i;
conn = S2C(session);
log = conn->log;
- log->ckpt_lsn = *ckp_lsn;
+ log->ckpt_lsn = *ckpt_lsn;
if (conn->log_cond != NULL)
__wt_cond_signal(session, conn->log_cond);
+ /*
+ * If we are storing debugging LSNs to retain additional log files
+ * from archiving, then rotate the newest LSN into the array.
+ */
+ if (conn->debug_ckpt_cnt != 0) {
+ for (i = (int)conn->debug_ckpt_cnt - 1; i > 0; --i)
+ conn->debug_ckpt[i] = conn->debug_ckpt[i - 1];
+ conn->debug_ckpt[0] = *ckpt_lsn;
+ }
}
/*