diff options
author | 2013-09-21 17:34:00 +0000 | |
---|---|---|
committer | 2013-09-21 17:34:00 +0000 | |
commit | fc5be0f32a9749b504f189091b6126cf8417bcab (patch) | |
tree | 68602384a19e477f8c42a3c00958ea5ef981f7ea /lib/libsqlite3/src/os_unix.c | |
parent | Update sqlite to 3.8.0.2. A list of changes are available here: (diff) | |
download | wireguard-openbsd-fc5be0f32a9749b504f189091b6126cf8417bcab.tar.xz wireguard-openbsd-fc5be0f32a9749b504f189091b6126cf8417bcab.zip |
Merge conflicts
Diffstat (limited to 'lib/libsqlite3/src/os_unix.c')
-rw-r--r-- | lib/libsqlite3/src/os_unix.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/lib/libsqlite3/src/os_unix.c b/lib/libsqlite3/src/os_unix.c index 6707ec142ac..570bcf3fb88 100644 --- a/lib/libsqlite3/src/os_unix.c +++ b/lib/libsqlite3/src/os_unix.c @@ -46,13 +46,6 @@ #include "sqliteInt.h" #if SQLITE_OS_UNIX /* This file is used on unix only */ -/* Use posix_fallocate() if it is available -*/ -#if !defined(HAVE_POSIX_FALLOCATE) \ - && (_XOPEN_SOURCE >= 600 || _POSIX_C_SOURCE >= 200112L) -# define HAVE_POSIX_FALLOCATE 1 -#endif - /* ** There are various methods for file locking used for concurrency ** control: @@ -3775,15 +3768,19 @@ static int unixFileControl(sqlite3_file *id, int op, void *pArg){ } case SQLITE_FCNTL_MMAP_SIZE: { i64 newLimit = *(i64*)pArg; + int rc = SQLITE_OK; if( newLimit>sqlite3GlobalConfig.mxMmap ){ newLimit = sqlite3GlobalConfig.mxMmap; } *(i64*)pArg = pFile->mmapSizeMax; - if( newLimit>=0 ){ + if( newLimit>=0 && newLimit!=pFile->mmapSizeMax && pFile->nFetchOut==0 ){ pFile->mmapSizeMax = newLimit; - if( newLimit<pFile->mmapSize ) pFile->mmapSize = newLimit; + if( pFile->mmapSize>0 ){ + unixUnmapfile(pFile); + rc = unixMapfile(pFile, -1); + } } - return SQLITE_OK; + return rc; } #ifdef SQLITE_DEBUG /* The pager calls this method to signal that it has done |