init: don't crash server on failure to open output log
authorJens Axboe <axboe@fb.com>
Tue, 7 Feb 2017 16:06:16 +0000 (09:06 -0700)
committerJens Axboe <axboe@fb.com>
Tue, 7 Feb 2017 16:06:16 +0000 (09:06 -0700)
We don't use it on the server side anyway.

Signed-off-by: Jens Axboe <axboe@fb.com>
init.c

diff --git a/init.c b/init.c
index 34ed20f19ad0f6257703f089e3acf0fa528ace67..0a2ace186f88bbaccc5bfccc39bb7c8e8cc854b7 100644 (file)
--- a/init.c
+++ b/init.c
@@ -2326,17 +2326,22 @@ int parse_cmd_line(int argc, char *argv[], int client_type)
                case 'b':
                        write_bw_log = 1;
                        break;
-               case 'o':
+               case 'o': {
+                       FILE *tmp;
+
                        if (f_out && f_out != stdout)
                                fclose(f_out);
 
-                       f_out = fopen(optarg, "w+");
-                       if (!f_out) {
-                               perror("fopen output");
-                               exit(1);
+                       tmp = fopen(optarg, "w+");
+                       if (!tmp) {
+                               log_err("fio: output file open error: %s\n", strerror(errno));
+                               exit_val = 1;
+                               do_exit++;
+                               break;
                        }
-                       f_err = f_out;
+                       f_err = f_out = tmp;
                        break;
+                       }
                case 'm':
                        output_format = FIO_OUTPUT_TERSE;
                        break;