+bool file_bloom_exists(const char *fname, bool set)
+{
+ return bloom_string(file_bloom, fname, strlen(fname), set);
+}
+
+void file_hash_exit(void)
+{
+ unsigned int i, has_entries = 0;
+
+ fio_sem_down(hash_lock);
+ for (i = 0; i < HASH_BUCKETS; i++)
+ has_entries += !flist_empty(&file_hash[i]);
+ fio_sem_up(hash_lock);
+
+ if (has_entries)
+ log_err("fio: file hash not empty on exit\n");
+
+ sfree(file_hash);
+ file_hash = NULL;
+ fio_sem_remove(hash_lock);
+ hash_lock = NULL;
+ bloom_free(file_bloom);
+ file_bloom = NULL;
+}
+
+void file_hash_init(void)