goto err;
}
- b = malloc(td->max_bs);
- memset(b, 0, td->max_bs);
+ b = malloc(td->max_bs[DDIR_WRITE]);
+ memset(b, 0, td->max_bs[DDIR_WRITE]);
left = f->file_size;
while (left && !td->terminate) {
- bs = td->max_bs;
+ bs = td->max_bs[DDIR_WRITE];
if (bs > left)
bs = left;
struct fio_file *f;
int i, err, need_create;
+ for_each_file(td, f, i)
+ f->file_size = td->total_file_size / td->nr_files;
+
/*
* unless specifically asked for overwrite, let normal io extend it
*/
- if (!td->overwrite) {
- for_each_file(td, f, i)
- f->file_size = td->total_file_size / td->nr_files;
-
+ if (!td->overwrite)
return 0;
- }
need_create = 0;
if (td->filetype == FIO_TYPE_FILE)
for_each_file(td, f, i) {
if (f->fd != -1) {
- if (td->unlink && td->filetype == FIO_TYPE_FILE &&
- td->filename) {
- unlink(f->file_name);
- td->filename = NULL;
- }
- free(f->file_name);
- f->file_name = NULL;
+ file_invalidate_cache(td, f);
close(f->fd);
f->fd = -1;
}
+ if (td->unlink && td->filetype == FIO_TYPE_FILE) {
+ unlink(f->file_name);
+ free(f->file_name);
+ f->file_name = NULL;
+ }
if (f->mmap) {
munmap(f->mmap, f->file_size);
f->mmap = NULL;
}
}
+ td->filename = NULL;
free(td->files);
td->files = NULL;
td->nr_files = 0;