iolog replay: Treat 'open' on file that is scheduled to close as cancel of 'close...
[fio.git] / filesetup.c
index accb67acd9a1f1ebd77bcaad8aa366eb4d6e1d5f..94a025e6c1064e442dc18254d08e3f002dcae644 100644 (file)
@@ -1675,6 +1675,11 @@ int put_file(struct thread_data *td, struct fio_file *f)
        if (--f->references)
                return 0;
 
+       disk_util_dec(f->du);
+
+       if (td->o.file_lock_mode != FILE_LOCK_NONE)
+               unlock_file_all(td, f);
+
        if (should_fsync(td) && td->o.fsync_on_close) {
                f_ret = fsync(f->fd);
                if (f_ret < 0)
@@ -1688,6 +1693,7 @@ int put_file(struct thread_data *td, struct fio_file *f)
                ret = f_ret;
 
        td->nr_open_files--;
+       fio_file_clear_closing(f);
        fio_file_clear_open(f);
        assert(f->fd == -1);
        return ret;