X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;ds=sidebyside;f=smalloc.c;h=fdf7d22ec4bf2b256f755842d97ec578baaa9fb9;hb=ac18ea38de2a23018f9f953c3028d519df3a1177;hp=3dd1b4960dd9f15186399432800412fa1c45255d;hpb=5e012980ff5f8396a3e3ebc432e1dd32cebedaa1;p=fio.git diff --git a/smalloc.c b/smalloc.c index 3dd1b496..fdf7d22e 100644 --- a/smalloc.c +++ b/smalloc.c @@ -10,9 +10,11 @@ #include #include #include +#include #include "mutex.h" #include "arch/arch.h" +#include "os/os.h" #define SMALLOC_REDZONE /* define to detect memory corruption */ @@ -196,10 +198,14 @@ static int add_pool(struct pool *pool, unsigned int alloc_size) bitmap_blocks = alloc_size / SMALLOC_BPL; alloc_size += bitmap_blocks * sizeof(unsigned int); pool->mmap_size = alloc_size; - + pool->nr_blocks = bitmap_blocks; pool->free_blocks = bitmap_blocks * SMALLOC_BPB; +#ifdef FIO_HAVE_FALLOCATE + posix_fallocate(fd, 0, alloc_size); +#endif + if (ftruncate(fd, alloc_size) < 0) goto out_unlink;