]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
os/bluestore/BlueFS: track log_seq_stable
authorSage Weil <sage@redhat.com>
Wed, 22 Jun 2016 21:42:32 +0000 (17:42 -0400)
committerSage Weil <sage@redhat.com>
Thu, 30 Jun 2016 16:56:56 +0000 (12:56 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/BlueFS.cc
src/os/bluestore/BlueFS.h

index b7230e3674afc5059bbc53185453306b6534aff7..cf096869f767de9cd9a9eeff98125f85612cfb6c 100644 (file)
@@ -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);
index 9d6129466d5b3b2a37c1e2d44df77af60c499b61..b6bd9a3eb63cc2cb0f183f627c9e593b56382f67 100644 (file)
@@ -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