diff options
Diffstat (limited to 'src/third_party/wiredtiger/src/log/log.c')
-rw-r--r-- | src/third_party/wiredtiger/src/log/log.c | 14 |
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; + } } /* |