From ca825651e61e37f9db8c39c9a7c35bf769b22e3e Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 22 Jun 2016 17:42:32 -0400 Subject: [PATCH] os/bluestore/BlueFS: track log_seq_stable Signed-off-by: Sage Weil --- src/os/bluestore/BlueFS.cc | 5 ++++- src/os/bluestore/BlueFS.h | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/os/bluestore/BlueFS.cc b/src/os/bluestore/BlueFS.cc index b7230e3674afc..cf096869f767d 100644 --- a/src/os/bluestore/BlueFS.cc +++ b/src/os/bluestore/BlueFS.cc @@ -17,6 +17,7 @@ BlueFS::BlueFS() : logger(NULL), ino_last(0), log_seq(0), + log_seq_stable(0), log_writer(NULL), bdev(MAX_BDEV), ioc(MAX_BDEV), @@ -1023,7 +1024,7 @@ void BlueFS::_pad_bl(bufferlist& bl) int BlueFS::_flush_and_sync_log() { - log_t.seq = ++log_seq; + uint64_t seq = log_t.seq = ++log_seq; log_t.uuid = super.uuid; dout(10) << __func__ << " " << log_t << dendl; assert(!log_t.empty()); @@ -1059,6 +1060,8 @@ int BlueFS::_flush_and_sync_log() _flush_bdev(); // clean dirty files + dout(20) << __func__ << " log_seq_stable " << seq << dendl; + log_seq_stable = seq; dirty_file_list_t::iterator p = dirty_files.begin(); while (p != dirty_files.end()) { File *file = &(*p); diff --git a/src/os/bluestore/BlueFS.h b/src/os/bluestore/BlueFS.h index 9d6129466d5b3..b6bd9a3eb63cc 100644 --- a/src/os/bluestore/BlueFS.h +++ b/src/os/bluestore/BlueFS.h @@ -201,6 +201,7 @@ private: bluefs_super_t super; ///< latest superblock (as last written) uint64_t ino_last; ///< last assigned ino (this one is in use) uint64_t log_seq; ///< last used log seq (by current pending log_t) + uint64_t log_seq_stable; ///< last stable/synced log seq FileWriter *log_writer; ///< writer for the log bluefs_transaction_t log_t; ///< pending, unwritten log transaction -- 2.39.5