Recent changes (master)
Jens Axboe <[email protected]> Sat, 14 Feb 2026 06:00:01 -0700
| Newsgroups | org.kernel.vger.fio |
|---|---|
| Message-ID | <[email protected]> |
The following changes since commit 05b2e9fe7722af4470139465a53c629c40936cb4:
fio: bump server version for new option (2026-02-10 07:36:17 -0500)
are available in the Git repository at:
git://git.kernel.dk/fio.git master
for you to fetch changes up to 1a04e5746c28316bd8a64825bf2b5739dc01c589:
stat: Remove duplicate space in __show_run_stats() (2026-02-13 11:44:32 -0500)
----------------------------------------------------------------
Niklas Cassel (3):
fio: Fix error string not matching errno
io_u: Fix inconsistent handling of non-fatal errors with option error_dump
stat: Remove duplicate space in __show_run_stats()
fio.h | 7 +++----
io_u.c | 10 ++++++++--
stat.c | 2 +-
3 files changed, 12 insertions(+), 7 deletions(-)
---
Diff of recent changes:
diff --git a/fio.h b/fio.h
index e0b7c13c..65c68d4b 100644
--- a/fio.h
+++ b/fio.h
@@ -542,10 +542,9 @@ enum {
if ((td)->error) \
break; \
(td)->error = ____e; \
- if (!(td)->first_error) \
- nowarn_snprintf(td->verror, sizeof(td->verror), \
- "file:%s:%d, func=%s, error=%s", \
- __FILE__, __LINE__, (func), (msg)); \
+ nowarn_snprintf(td->verror, sizeof(td->verror), \
+ "file:%s:%d, func=%s, error=%s", \
+ __FILE__, __LINE__, (func), (msg)); \
} while (0)
diff --git a/io_u.c b/io_u.c
index ac9a1c7d..653a700c 100644
--- a/io_u.c
+++ b/io_u.c
@@ -1985,8 +1985,14 @@ err_put:
static void __io_u_log_error(struct thread_data *td, struct io_u *io_u)
{
enum error_type_bit eb = td_error_type(io_u->ddir, io_u->error);
+ bool non_fatal_error = td_non_fatal_error(td, eb, io_u->error);
- if (td_non_fatal_error(td, eb, io_u->error) && !td->o.error_dump)
+ /*
+ * Non-fatal errors (errors that should be ignored), are normally not
+ * dumped to the log, unless td->o.error_dump. Regardless, non-fatal
+ * errors should never call td_verror() to set td->error.
+ */
+ if (non_fatal_error && !td->o.error_dump)
return;
log_err("fio: io_u error%s%s: %s: %s offset=%llu, buflen=%llu\n",
@@ -2008,7 +2014,7 @@ static void __io_u_log_error(struct thread_data *td, struct io_u *io_u)
}
}
- if (!td->error)
+ if (!td->error && !non_fatal_error)
td_verror(td, io_u->error, "io_u error");
}
diff --git a/stat.c b/stat.c
index b999eb4b..620b4626 100644
--- a/stat.c
+++ b/stat.c
@@ -2604,7 +2604,7 @@ void __show_run_stats(void)
ts->error = td->first_error;
snprintf(ts->verror, sizeof(ts->verror), "%s",
td->verror);
- } else if (td->error) {
+ } else if (td->error) {
ts->error = td->error;
snprintf(ts->verror, sizeof(ts->verror), "%s",
td->verror);