Signed-off-by: Sage Weil <sage@redhat.com>
: logger(NULL),
ino_last(0),
log_seq(0),
+ log_seq_stable(0),
log_writer(NULL),
bdev(MAX_BDEV),
ioc(MAX_BDEV),
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());
_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);
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