mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
ndb - bug#30646 fsync on close only if file is open for write
storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp: AsyncFile: fsync on close only if file is open for write (for AIX) storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp: AsyncFile: fsync on close only if file is open for write (for AIX)
This commit is contained in:
parent
b0ac87dc44
commit
d319e12ab7
2 changed files with 10 additions and 1 deletions
|
@ -99,6 +99,7 @@ AsyncFile::AsyncFile(SimulatedBlock& fs) :
|
|||
{
|
||||
m_page_ptr.setNull();
|
||||
m_current_request= m_last_request= 0;
|
||||
m_open_flags = 0;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -328,6 +329,7 @@ void AsyncFile::openReq(Request* request)
|
|||
{
|
||||
m_auto_sync_freq = 0;
|
||||
m_write_wo_sync = 0;
|
||||
m_open_flags = request->par.open.flags;
|
||||
|
||||
// for open.flags, see signal FSOPENREQ
|
||||
#ifdef NDB_WIN32
|
||||
|
@ -954,7 +956,12 @@ AsyncFile::writevReq( Request * request)
|
|||
void
|
||||
AsyncFile::closeReq(Request * request)
|
||||
{
|
||||
syncReq(request);
|
||||
if (m_open_flags & (
|
||||
FsOpenReq::OM_WRITEONLY |
|
||||
FsOpenReq::OM_READWRITE |
|
||||
FsOpenReq::OM_APPEND )) {
|
||||
syncReq(request);
|
||||
}
|
||||
#ifdef NDB_WIN32
|
||||
if(!CloseHandle(hFile)) {
|
||||
request->error = GetLastError();
|
||||
|
|
|
@ -224,6 +224,8 @@ private:
|
|||
#else
|
||||
int theFd;
|
||||
#endif
|
||||
|
||||
Uint32 m_open_flags; // OM_ flags from request to open file
|
||||
|
||||
MemoryChannel<Request> *theReportTo;
|
||||
MemoryChannel<Request>* theMemoryChannelPtr;
|
||||
|
|
Loading…
Reference in a new issue