diff --git a/src/common/io_file.h b/src/common/io_file.h index 45787a092..cb01e154a 100644 --- a/src/common/io_file.h +++ b/src/common/io_file.h @@ -186,7 +186,9 @@ public: template size_t WriteRaw(const void* data, size_t size) const { - return std::fwrite(data, sizeof(T), size, file); + auto bytes = std::fwrite(data, sizeof(T), size, file); + std::fflush(file); + return bytes; } template diff --git a/src/core/libraries/kernel/file_system.cpp b/src/core/libraries/kernel/file_system.cpp index afc7fe39a..76d1a3339 100644 --- a/src/core/libraries/kernel/file_system.cpp +++ b/src/core/libraries/kernel/file_system.cpp @@ -294,10 +294,7 @@ s64 PS4_SYSV_ABI write(s32 fd, const void* buf, size_t nbytes) { return result; } - auto bytes_written = file->f.WriteRaw(buf, nbytes); - // Some written data might be buffered, run Flush to make sure all data is written properly. - file->f.Flush(); - return bytes_written; + return file->f.WriteRaw(buf, nbytes); } s64 PS4_SYSV_ABI posix_write(s32 fd, const void* buf, size_t nbytes) {