Allocate file structure from shared process pool

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
diff --git a/filesetup.c b/filesetup.c
index b37de5b..ac2bed7 100644
--- a/filesetup.c
+++ b/filesetup.c
@@ -8,6 +8,7 @@
 #include <sys/types.h>
 
 #include "fio.h"
+#include "smalloc.h"
 
 static int root_warn;
 
@@ -508,13 +509,12 @@
 	for_each_file(td, f, i) {
 		blocks = (f->real_file_size + td->o.rw_min_bs - 1) / (unsigned long long) td->o.rw_min_bs;
 		num_maps = (blocks + BLOCKS_PER_MAP-1)/ (unsigned long long) BLOCKS_PER_MAP;
-		f->file_map = malloc(num_maps * sizeof(long));
+		f->file_map = smalloc(num_maps * sizeof(long));
 		if (!f->file_map) {
 			log_err("fio: failed allocating random map. If running a large number of jobs, try the 'norandommap' option\n");
 			return 1;
 		}
 		f->num_maps = num_maps;
-		memset(f->file_map, 0, num_maps * sizeof(long));
 	}
 
 	return 0;
@@ -542,11 +542,11 @@
 
 		td_io_close_file(td, f);
 
-		free(f->file_name);
+		sfree(f->file_name);
 		f->file_name = NULL;
 
 		if (f->file_map) {
-			free(f->file_map);
+			sfree(f->file_map);
 			f->file_map = NULL;
 		}
 	}
@@ -585,8 +585,7 @@
 
 	dprint(FD_FILE, "add file %s\n", fname);
 
-	f = malloc(sizeof(*f));
-	memset(f, 0, sizeof(*f));
+	f = smalloc(sizeof(*f));
 	f->fd = -1;
 
 	td->files = realloc(td->files, (cur_files + 1) * sizeof(f));
@@ -603,7 +602,7 @@
 		len = sprintf(file_name, "%s/", td->o.directory);
 
 	sprintf(file_name + len, "%s", fname);
-	f->file_name = strdup(file_name);
+	f->file_name = smalloc_strdup(file_name);
 
 	get_file_type(f);
 
@@ -726,11 +725,10 @@
 	for_each_file(td, f, i) {
 		struct fio_file *__f;
 
-		__f = malloc(sizeof(*__f));
-		memset(f, 0, sizeof(*__f));
+		__f = smalloc(sizeof(*__f));
 
 		if (f->file_name)
-			__f->file_name = strdup(f->file_name);
+			__f->file_name = smalloc_strdup(f->file_name);
 
 		td->files[i] = __f;
 	}