diff --git a/core/fstream.cc b/core/fstream.cc index 0e96c3f6d0..103e34df54 100644 --- a/core/fstream.cc +++ b/core/fstream.cc @@ -111,9 +111,7 @@ public: return _file->dma_write(pos, p, buf_size).then( [this, buf = std::move(buf), truncate] (size_t size) { if (truncate) { - return _file->truncate(_pos).then([this] { - return _file->flush(); - }); + return _file->truncate(_pos); } return make_ready_future<>(); }); diff --git a/tests/fstream_test.cc b/tests/fstream_test.cc index cdc9b1b93e..1ba8838619 100644 --- a/tests/fstream_test.cc +++ b/tests/fstream_test.cc @@ -52,7 +52,7 @@ SEASTAR_TEST_CASE(test_fstream) { buf[4095] = ']'; w->out.write(buf, 4096).then([buf, w] { ::free(buf); - return w->out.flush(); + return make_ready_future<>(); }).then([w] { auto buf = static_cast(::malloc(8192)); memset(buf, 0, 8192); @@ -61,7 +61,7 @@ SEASTAR_TEST_CASE(test_fstream) { buf[8191] = ']'; return w->out.write(buf, 8192).then([buf, w] { ::free(buf); - return w->out.flush(); + return w->out.close().then([w] {}); }); }).then([] { return engine().open_file_dma("testfile.tmp", open_flags::ro); @@ -105,7 +105,7 @@ SEASTAR_TEST_CASE(test_fstream_unaligned) { buf[39] = ']'; w->out.write(buf, 40).then([buf, w] { ::free(buf); - return w->out.flush().then([w] {}); + return w->out.close().then([w] {}); }).then([] { return engine().open_file_dma("testfile.tmp", open_flags::ro); }).then([] (file f) {