mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-12 13:01:09 +03:00
Simplify logic for syncing directories after creating or deleting a file in
the unix VFS. FossilOrigin-Name: eb180b4f04d412dcd0af138e2dd7f62fbb5ac439
This commit is contained in:
@@ -3500,7 +3500,8 @@ static int openDirectory(const char *zFilename, int *pFd){
|
||||
}
|
||||
}
|
||||
*pFd = fd;
|
||||
return (fd>=0?SQLITE_OK:unixLogError(SQLITE_CANTOPEN_BKPT, "open", zDirname));
|
||||
if( fd>=0 ) return SQLITE_OK;
|
||||
return unixLogError(SQLITE_CANTOPEN_BKPT, "openDirectory", zDirname);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -3553,10 +3554,11 @@ static int unixSync(sqlite3_file *id, int flags){
|
||||
OSTRACE(("DIRSYNC %s (have_fullfsync=%d fullsync=%d)\n", pFile->zPath,
|
||||
HAVE_FULLFSYNC, isFullsync));
|
||||
rc = osOpenDirectory(pFile->zPath, &dirfd);
|
||||
if( rc==SQLITE_OK && dirfd>=0 ){
|
||||
if( rc==SQLITE_OK ){
|
||||
full_fsync(dirfd, 0, 0);
|
||||
robust_close(pFile, dirfd, __LINE__);
|
||||
}else if( rc==SQLITE_CANTOPEN ){
|
||||
}else{
|
||||
assert( rc==SQLITE_CANTOPEN );
|
||||
rc = SQLITE_OK;
|
||||
}
|
||||
pFile->ctrlFlags &= ~UNIXFILE_DIRSYNC;
|
||||
@@ -5903,7 +5905,8 @@ static int unixDelete(
|
||||
rc = unixLogError(SQLITE_IOERR_DIR_FSYNC, "fsync", zPath);
|
||||
}
|
||||
robust_close(0, fd, __LINE__);
|
||||
}else if( rc==SQLITE_CANTOPEN ){
|
||||
}else{
|
||||
assert( rc==SQLITE_CANTOPEN );
|
||||
rc = SQLITE_OK;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user