projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
gettime: slightly improve CPU clock calibration
[fio.git]
/
iolog.c
diff --git
a/iolog.c
b/iolog.c
index 0f95c6080ea8d49fde24e868af82369d1dc7be2e..26c3458638adf94f41d407c5444187e64f299647 100644
(file)
--- a/
iolog.c
+++ b/
iolog.c
@@
-447,7
+447,7
@@
static bool read_iolog2(struct thread_data *td)
dprint(FD_FILE, "iolog: ignoring"
" re-add of file %s\n", fname);
} else {
dprint(FD_FILE, "iolog: ignoring"
" re-add of file %s\n", fname);
} else {
- fileno = add_file(td, fname,
0
, 1);
+ fileno = add_file(td, fname,
td->subjob_number
, 1);
file_action = FIO_LOG_ADD_FILE;
}
continue;
file_action = FIO_LOG_ADD_FILE;
}
continue;
@@
-580,7
+580,10
@@
static int open_socket(const char *path)
if (fd < 0)
return fd;
addr.sun_family = AF_UNIX;
if (fd < 0)
return fd;
addr.sun_family = AF_UNIX;
- strncpy(addr.sun_path, path, sizeof(addr.sun_path));
+ if (snprintf(addr.sun_path, sizeof(addr.sun_path), "%s", path) >=
+ sizeof(addr.sun_path))
+ log_err("%s: path name %s is too long for a Unix socket\n",
+ __func__, path);
if (connect(fd, (const struct sockaddr *)&addr, strlen(path) + sizeof(addr.sun_family)) == 0)
return fd;
else
if (connect(fd, (const struct sockaddr *)&addr, strlen(path) + sizeof(addr.sun_family)) == 0)
return fd;
else
@@
-596,13
+599,17
@@
static bool init_iolog_read(struct thread_data *td)
char buffer[256], *p;
FILE *f = NULL;
bool ret;
char buffer[256], *p;
FILE *f = NULL;
bool ret;
- if (is_socket(td->o.read_iolog_file)) {
- int fd = open_socket(td->o.read_iolog_file);
+ char* fname = get_name_by_idx(td->o.read_iolog_file, td->subjob_number);
+ dprint(FD_IO, "iolog: name=%s\n", fname);
+
+ if (is_socket(fname)) {
+ int fd = open_socket(fname);
if (fd >= 0) {
f = fdopen(fd, "r");
}
} else
if (fd >= 0) {
f = fdopen(fd, "r");
}
} else
- f = fopen(td->o.read_iolog_file, "r");
+ f = fopen(fname, "r");
+ free(fname);
if (!f) {
perror("fopen read iolog");
return false;
if (!f) {
perror("fopen read iolog");
return false;