diff options
Diffstat (limited to 'src/cache/backings/file_mapped.c')
| -rw-r--r-- | src/cache/backings/file_mapped.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/src/cache/backings/file_mapped.c b/src/cache/backings/file_mapped.c index 7657a21..24ac005 100644 --- a/src/cache/backings/file_mapped.c +++ b/src/cache/backings/file_mapped.c @@ -46,14 +46,12 @@ static void file_backing_unlock(struct cch_backing *backing) static void file_backing_set_size(struct cch_backing *backing, off_t size, bool expand_to_size) { struct cch_backing_file *file = (struct cch_backing_file *)backing; - al_assert(expand_to_size || size == 0); nn_mutex_lock(&file->mutex); file->backing.size = size; - if ((size_t)size > file->file.size) { + if (expand_to_size || (size > 0 && size < file->file.size)) { nn_file_munmap(&file->file, file->u.map); nn_file_truncate(&file->file, size); file->u.map = nn_file_mmap(&file->file); - file->file.size = size; } nn_mutex_unlock(&file->mutex); } |