From: Ben England Date: Tue, 6 Sep 2016 16:21:30 +0000 (-0400) Subject: generate unique pathname for each fio --client log file X-Git-Tag: fio-2.14~4^2~2 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=14a74557d9f7737a7b2427aef151475d5ce3937c;ds=sidebyside generate unique pathname for each fio --client log file --- diff --git a/client.c b/client.c index 34566650..c29151df 100644 --- a/client.c +++ b/client.c @@ -1294,6 +1294,7 @@ static int fio_client_handle_iolog(struct fio_client *client, { struct cmd_iolog_pdu *pdu; bool store_direct; + char * log_pathname; pdu = convert_iolog(cmd, &store_direct); if (!pdu) { @@ -1301,15 +1302,24 @@ static int fio_client_handle_iolog(struct fio_client *client, return 1; } + /* generate a unique pathname for the log file using hostname */ + log_pathname = malloc(PATH_MAX+10); + if (!log_pathname) { + log_err("fio: memory allocation of unique pathname failed"); + return -1; + } + sprintf(log_pathname, "%s.%s", pdu->name, client->hostname); + if (store_direct) { ssize_t ret; size_t sz; int fd; - fd = open((const char *) pdu->name, + fd = open((const char *) log_pathname, O_WRONLY | O_CREAT | O_TRUNC, 0644); if (fd < 0) { - log_err("fio: open log: %s\n", strerror(errno)); + log_err("fio: open log %s: %s\n", + log_pathname, strerror(errno)); return 1; } @@ -1325,10 +1335,10 @@ static int fio_client_handle_iolog(struct fio_client *client, return 0; } else { FILE *f; - - f = fopen((const char *) pdu->name, "w"); + f = fopen((const char *) log_pathname, "w"); if (!f) { - log_err("fio: fopen log: %s\n", strerror(errno)); + log_err("fio: fopen log %s : %s\n", + log_pathname, strerror(errno)); return 1; }