Make lockmem a per job option
[fio.git] / init.c
diff --git a/init.c b/init.c
index a04198f3e08c77a02a3d2286c350091106e9b086..aa76733d9043d6038ee05c7ef81729503ee58096 100644 (file)
--- a/init.c
+++ b/init.c
@@ -40,7 +40,6 @@ struct thread_data *threads = NULL;
 int exitall_on_terminate = 0;
 int terse_output = 0;
 int eta_print;
-unsigned long long mlock_size = 0;
 FILE *f_out = NULL;
 FILE *f_err = NULL;
 char **job_sections = NULL;
@@ -207,7 +206,7 @@ static struct option l_opts[FIO_NR_OPTIONS] = {
        },
 };
 
-static void free_shm(void)
+void free_threads_shm(void)
 {
        struct shmid_ds sbuf;
 
@@ -215,11 +214,19 @@ static void free_shm(void)
                void *tp = threads;
 
                threads = NULL;
+               shmdt(tp);
+               shmctl(shm_id, IPC_RMID, &sbuf);
+               shm_id = -1;
+       }
+}
+
+void free_shm(void)
+{
+       if (threads) {
                file_hash_exit();
                flow_exit();
                fio_debug_jobp = NULL;
-               shmdt(tp);
-               shmctl(shm_id, IPC_RMID, &sbuf);
+               free_threads_shm();
        }
 
        scleanup();