From: Jianpeng Ma Date: Fri, 29 May 2020 01:08:42 +0000 (+0800) Subject: os/bluestore/BlueFS: flush data into disk when close file. X-Git-Tag: v16.1.0~2085^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8fc4e2301b1f3209f0e55dccea9df2b90ed30a3d;p=ceph.git os/bluestore/BlueFS: flush data into disk when close file. Avoid data remain in buffer when close the file, we should flush w/ force. Signed-off-by: Jianpeng Ma --- diff --git a/src/os/bluestore/BlueFS.h b/src/os/bluestore/BlueFS.h index 9d699069d77d..738445d2ceab 100644 --- a/src/os/bluestore/BlueFS.h +++ b/src/os/bluestore/BlueFS.h @@ -557,9 +557,9 @@ public: // handler for discard event void handle_discard(unsigned dev, interval_set& to_release); - void flush(FileWriter *h) { + void flush(FileWriter *h, bool force = false) { std::lock_guard l(lock); - _flush(h, false); + _flush(h, force); } void flush_range(FileWriter *h, uint64_t offset, uint64_t length) { std::lock_guard l(lock); diff --git a/src/os/bluestore/BlueRocksEnv.cc b/src/os/bluestore/BlueRocksEnv.cc index e5cc992bff7d..54c7d27458cc 100644 --- a/src/os/bluestore/BlueRocksEnv.cc +++ b/src/os/bluestore/BlueRocksEnv.cc @@ -198,7 +198,7 @@ class BlueRocksWritableFile : public rocksdb::WritableFile { } rocksdb::Status Close() override { - Flush(); + fs->flush(h, true); // mimic posix env, here. shrug. size_t block_size;