X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=smalloc.c;h=42008ebfdb6e44732c469b596b7be65786031231;hp=409998aa8ad5a66ebbc8ac7d2fb620553ac75880;hb=8489dae4360f2b00d89a6e9603c6167314b1974d;hpb=0b9d69ecb14045cf3b2622ae922756b9889b25e6 diff --git a/smalloc.c b/smalloc.c index 409998aa..42008ebf 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 */ @@ -200,6 +202,18 @@ static int add_pool(struct pool *pool, unsigned int alloc_size) pool->nr_blocks = bitmap_blocks; pool->free_blocks = bitmap_blocks * SMALLOC_BPB; +#ifdef FIO_HAVE_FALLOCATE + { + int ret; + + ret = posix_fallocate(fd, 0, alloc_size); + if (ret > 0) { + fprintf(stderr, "posix_fallocate pool file failed: %s\n", strerror(ret)); + goto out_unlink; + } + } +#endif + if (ftruncate(fd, alloc_size) < 0) goto out_unlink;