diff options
Diffstat (limited to 'src/cache/backings')
| -rw-r--r-- | src/cache/backings/file_common.c | 3 | ||||
| -rw-r--r-- | src/cache/backings/file_mapped.c | 1 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/cache/backings/file_common.c b/src/cache/backings/file_common.c index c0b54c0..232580a 100644 --- a/src/cache/backings/file_common.c +++ b/src/cache/backings/file_common.c @@ -9,7 +9,8 @@ static off_t file_backing_get_size_estimate(struct cch_backing *backing) static bool file_open_internal(struct cch_backing_file *file, str *path, size_t size) { - if (!aki_file_open(&file->file, path, size != 0)) return false; + s32 flags = size != 0 ? AKI_FILE_CREATE : 0; + if (!aki_file_open(&file->file, path, flags)) return false; file->filesize = aki_file_get_filesize(&file->file); if (!size) { file->size = file->filesize; diff --git a/src/cache/backings/file_mapped.c b/src/cache/backings/file_mapped.c index 1b06ad2..4277c21 100644 --- a/src/cache/backings/file_mapped.c +++ b/src/cache/backings/file_mapped.c @@ -43,6 +43,7 @@ static void file_backing_resize(struct cch_backing *backing, size_t size) aki_mutex_lock(&file->mutex); file->size = size; if ((off_t)size > file->filesize) { + // TODO: Unmap, truncate, map? file->u.map = aki_file_mremap(&file->file, size, file->u.map); aki_file_truncate(&file->file, size); file->filesize = size; |