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: v15.2.5~25^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7f9ded273319814de7cea5715d14339ae4fa7e31;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 (cherry picked from commit 8fc4e2301b1f3209f0e55dccea9df2b90ed30a3d) --- diff --git a/src/os/bluestore/BlueFS.h b/src/os/bluestore/BlueFS.h index 9e635bd8bde..516ede84189 100644 --- a/src/os/bluestore/BlueFS.h +++ b/src/os/bluestore/BlueFS.h @@ -553,9 +553,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 51614c09d2c..aa689dbc08b 100644 --- a/src/os/bluestore/BlueRocksEnv.cc +++ b/src/os/bluestore/BlueRocksEnv.cc @@ -196,7 +196,7 @@ class BlueRocksWritableFile : public rocksdb::WritableFile { } rocksdb::Status Close() override { - Flush(); + fs->flush(h, true); // mimic posix env, here. shrug. size_t block_size;