From: Lennart Poettering Date: Wed, 12 Oct 2011 02:41:27 +0000 (+0200) Subject: journal: only fallocate() what we really need to avoid slowness on file systems which... X-Git-Tag: v38~144^2~60 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=38ac38b298a91c358285b7330aa66679338af874;ds=sidebyside journal: only fallocate() what we really need to avoid slowness on file systems which do not support fallocate natively --- diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c index 37e2e37eb..45cc0d1d8 100644 --- a/src/journal/journal-file.c +++ b/src/journal/journal-file.c @@ -162,7 +162,7 @@ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) new_size = PAGE_ALIGN(offset + size); /* We assume that this file is not sparse, and we know that - * for sure, since we alway call posix_fallocate() + * for sure, since we always call posix_fallocate() * ourselves */ old_size = @@ -195,7 +195,7 @@ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) if (asize > le64toh(f->header->arena_max_size)) return -E2BIG; - if (posix_fallocate(f->fd, 0, new_size) < 0) + if (posix_fallocate(f->fd, old_size, new_size - old_size) < 0) return -errno; if (fstat(f->fd, &f->last_stat) < 0)