X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=filesetup.c;h=06b7d7fc845cb9f041c03b16f983ffb564443896;hp=3594a80faf3bfe8300e29fc7cc04f7c892e826f8;hb=3ae4f4af272a54045cba9c650411353c92ec768d;hpb=ce95d651568bd5494e4c4ddc95832715c6760d56 diff --git a/filesetup.c b/filesetup.c index 3594a80f..06b7d7fc 100644 --- a/filesetup.c +++ b/filesetup.c @@ -435,7 +435,7 @@ int generic_close_file(struct thread_data fio_unused *td, struct fio_file *f) return ret; } -static int file_lookup_open(struct fio_file *f, int flags) +int file_lookup_open(struct fio_file *f, int flags) { struct fio_file *__f; int from_hash; @@ -468,6 +468,11 @@ int generic_open_file(struct thread_data *td, struct fio_file *f) dprint(FD_FILE, "fd open %s\n", f->file_name); + if (td_trim(td) && f->filetype != FIO_TYPE_BD) { + log_err("fio: trim only applies to block device\n"); + return 1; + } + if (!strcmp(f->file_name, "-")) { if (td_rw(td)) { log_err("fio: can't read/write to stdin/out\n"); @@ -482,14 +487,17 @@ int generic_open_file(struct thread_data *td, struct fio_file *f) f_out = stderr; } + if (td_trim(td)) + goto skip_flags; if (td->o.odirect) flags |= OS_O_DIRECT; if (td->o.sync_io) flags |= O_SYNC; - if (f->filetype != FIO_TYPE_FILE) - flags |= FIO_O_NOATIME; if (td->o.create_on_open) flags |= O_CREAT; +skip_flags: + if (f->filetype != FIO_TYPE_FILE) + flags |= FIO_O_NOATIME; open_again: if (td_write(td)) { @@ -503,7 +511,7 @@ open_again: f->fd = dup(STDOUT_FILENO); else from_hash = file_lookup_open(f, flags); - } else { + } else if (td_read(td)) { if (f->filetype == FIO_TYPE_CHAR && !read_only) flags |= O_RDWR; else @@ -513,6 +521,9 @@ open_again: f->fd = dup(STDIN_FILENO); else from_hash = file_lookup_open(f, flags); + } else { //td trim + flags |= O_RDWR; + from_hash = file_lookup_open(f, flags); } if (f->fd == -1) { @@ -781,7 +792,7 @@ int setup_files(struct thread_data *td) */ if (need_extend) { temp_stall_ts = 1; - if (!terse_output) + if (output_format == FIO_OUTPUT_NORMAL) log_info("%s: Laying out IO file(s) (%u file(s) /" " %lluMB)\n", td->o.name, need_extend, extend_size >> 20);