From 227184651a7c2ee76a7b4bf3369e1a9da5fc5052 Mon Sep 17 00:00:00 2001 From: Adam Kupczyk Date: Wed, 5 May 2021 11:35:39 +0200 Subject: [PATCH] os/bluestore/bluefs: Force metadata sync after file rename and file deletion Add metadata sync after RocksDB renames or deletes file. It makes possible for RocksDB to create meaningfull transition change on those actions. Important for log reuse/cycling and for CURRENT and MANIFEST files. Signed-off-by: Adam Kupczyk --- src/os/bluestore/BlueRocksEnv.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/os/bluestore/BlueRocksEnv.cc b/src/os/bluestore/BlueRocksEnv.cc index 8c4f80c7ed10..524043f142ca 100644 --- a/src/os/bluestore/BlueRocksEnv.cc +++ b/src/os/bluestore/BlueRocksEnv.cc @@ -412,6 +412,7 @@ rocksdb::Status BlueRocksEnv::ReuseWritableFile( if (r < 0) return err_to_status(r); result->reset(new BlueRocksWritableFile(fs, h)); + fs->sync_metadata(false); return rocksdb::Status::OK(); } @@ -452,6 +453,7 @@ rocksdb::Status BlueRocksEnv::DeleteFile(const std::string& fname) int r = fs->unlink(dir, file); if (r < 0) return err_to_status(r); + fs->sync_metadata(false); return rocksdb::Status::OK(); } @@ -512,6 +514,7 @@ rocksdb::Status BlueRocksEnv::RenameFile( int r = fs->rename(old_dir, old_file, new_dir, new_file); if (r < 0) return err_to_status(r); + fs->sync_metadata(false); return rocksdb::Status::OK(); } -- 2.47.3