Fix problem with too many opened files
[fio.git] / fio.c
diff --git a/fio.c b/fio.c
index ebe06d66f1ed1131e472ff2d0515acf6ed7b443c..6464b6d917ff39c7ecf5fc5efcd87fc4f93c079b 100644 (file)
--- a/fio.c
+++ b/fio.c
@@ -1041,7 +1041,7 @@ static void *thread_main(void *data)
                memcpy(&td->ts.stat_sample_time, &td->start, sizeof(td->start));
                memcpy(&td->tv_cache, &td->start, sizeof(td->start));
 
-               if (td->o.ratemin)
+               if (td->o.ratemin[0] || td->o.ratemin[1])
                        memcpy(&td->lastrate, &td->ts.stat_sample_time,
                                                        sizeof(td->lastrate));
 
@@ -1368,8 +1368,12 @@ static void run_threads(void)
                         * its own files. so close them, if we opened them
                         * for creation
                         */
-                       for_each_file(td, f, i)
-                               td_io_close_file(td, f);
+                       for_each_file(td, f, i) {
+                               if (fio_file_open(f))
+                                       td_io_close_file(td, f);
+                               else
+                                       assert(f->fd == -1);
+                       }
                }
 
                init_disk_util(td);