From 5f5099b7e216dc32ed79de674fd8c2a64e76aa38 Mon Sep 17 00:00:00 2001 From: Varada Kari Date: Fri, 22 Jul 2016 16:32:15 +0530 Subject: [PATCH] os/bluestore/BlueFS: Helper functions for the unit test framework Signed-off-by: Varada Kari --- src/os/bluestore/BlueFS.cc | 16 ++++++++++++++++ src/os/bluestore/BlueFS.h | 3 +++ 2 files changed, 19 insertions(+) diff --git a/src/os/bluestore/BlueFS.cc b/src/os/bluestore/BlueFS.cc index 3d9a7871458..377aedb68c5 100644 --- a/src/os/bluestore/BlueFS.cc +++ b/src/os/bluestore/BlueFS.cc @@ -973,6 +973,16 @@ uint64_t BlueFS::_estimate_log_size() return ROUND_UP_TO(size, super.block_size); } +void BlueFS::compact_log() +{ + std::unique_lock l(lock); + if (g_conf->bluefs_compact_log_sync) { + _compact_log_sync(); + } else { + _compact_log_async(l); + } +} + bool BlueFS::_should_compact_log() { uint64_t current = log_writer->file->fnode.size; @@ -1230,6 +1240,12 @@ void BlueFS::_pad_bl(bufferlist& bl) } } +void BlueFS::flush_log() +{ + std::unique_lock l(lock); + _flush_and_sync_log(l); +} + int BlueFS::_flush_and_sync_log(std::unique_lock& l, uint64_t want_seq, uint64_t jump_to) diff --git a/src/os/bluestore/BlueFS.h b/src/os/bluestore/BlueFS.h index dd8b5786c37..e1ff8575b7e 100644 --- a/src/os/bluestore/BlueFS.h +++ b/src/os/bluestore/BlueFS.h @@ -342,6 +342,9 @@ public: int lock_file(const string& dirname, const string& filename, FileLock **p); int unlock_file(FileLock *l); + void flush_log(); + void compact_log(); + /// sync any uncommitted state to disk int sync(); -- 2.39.5