diff --git a/src/fio.c b/src/fio.c
index c8de3e0167be89fb99a8c47a8da28c263f281021..08e2a045596536656a6b6caa89906c1b542a1eb5 100644
--- a/src/fio.c
+++ b/src/fio.c
@@ -47,6 +47,7 @@ const char *
 fio_filename(int fd)
 {
 #ifdef TARGET_OS_LINUX
+	int save_errno = errno;
 	char proc_path[32];
 	static __thread char filename_path[PATH_MAX];
 
@@ -54,7 +55,7 @@ fio_filename(int fd)
 
 	ssize_t sz = readlink(proc_path, filename_path,
 			      sizeof(filename_path));
-
+	errno = save_errno;
 	if (sz >= 0) {
 		filename_path[sz] = '\0';
 		return filename_path;