X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=client.c;h=9698122da8f522786b14482dd61e8771c8d2368c;hp=82db502028d9f5b488ca31750299946d3f30440e;hb=1f086b55e7480b0926177576f36813b8b9eb4a61;hpb=d9644df9f41ce6d16c50298dff04ede5ce110b63 diff --git a/client.c b/client.c index 82db5020..9698122d 100644 --- a/client.c +++ b/client.c @@ -1183,7 +1183,7 @@ void fio_client_sum_jobs_eta(struct jobs_eta *dst, struct jobs_eta *je) strcpy((char *) dst->run_str, (char *) je->run_str); } -static void remove_reply_cmd(struct fio_client *client, struct fio_net_cmd *cmd) +static bool remove_reply_cmd(struct fio_client *client, struct fio_net_cmd *cmd) { struct fio_net_cmd_reply *reply = NULL; struct flist_head *entry; @@ -1199,12 +1199,13 @@ static void remove_reply_cmd(struct fio_client *client, struct fio_net_cmd *cmd) if (!reply) { log_err("fio: client: unable to find matching tag (%llx)\n", (unsigned long long) cmd->tag); - return; + return false; } flist_del(&reply->list); cmd->tag = reply->saved_tag; free(reply); + return true; } int fio_client_wait_for_reply(struct fio_client *client, uint64_t tag) @@ -1303,8 +1304,7 @@ static int fio_client_handle_iolog(struct fio_client *client, } /* allocate buffer big enough for next sprintf() call */ - log_pathname = malloc( 10 + - strlen((char * )pdu->name) + + log_pathname = malloc(10 + strlen((char *)pdu->name) + strlen(client->hostname)); if (!log_pathname) { log_err("fio: memory allocation of unique pathname failed"); @@ -1321,7 +1321,7 @@ static int fio_client_handle_iolog(struct fio_client *client, fd = open((const char *) log_pathname, O_WRONLY | O_CREAT | O_TRUNC, 0644); if (fd < 0) { - log_err("fio: open log %s: %s\n", + log_err("fio: open log %s: %s\n", log_pathname, strerror(errno)); return 1; } @@ -1340,7 +1340,7 @@ static int fio_client_handle_iolog(struct fio_client *client, FILE *f; f = fopen((const char *) log_pathname, "w"); if (!f) { - log_err("fio: fopen log %s : %s\n", + log_err("fio: fopen log %s : %s\n", log_pathname, strerror(errno)); return 1; } @@ -1666,7 +1666,8 @@ int fio_handle_client(struct fio_client *client) case FIO_NET_CMD_ETA: { struct jobs_eta *je = (struct jobs_eta *) cmd->payload; - remove_reply_cmd(client, cmd); + if (!remove_reply_cmd(client, cmd)) + break; convert_jobs_eta(je); handle_eta(client, cmd); break;