Fix crash with group_reporting and one group member that never started
[fio.git] / server.c
index 750717adb913ee8d41b66d5fdc96b2b913eae531..6416a5c6c390f8bd9ee88a2c88329ad4dd4532b7 100644 (file)
--- a/server.c
+++ b/server.c
@@ -971,9 +971,9 @@ static int handle_trigger_cmd(struct fio_net_cmd *cmd)
                struct all_io_list state;
 
                state.threads = cpu_to_le64((uint64_t) 0);
-               fio_net_queue_cmd(FIO_NET_CMD_VTRIGGER, &state, sizeof(state), NULL, SK_F_COPY);
+               fio_net_queue_cmd(FIO_NET_CMD_VTRIGGER, &state, sizeof(state), NULL, SK_F_COPY | SK_F_INLINE);
        } else
-               fio_net_queue_cmd(FIO_NET_CMD_VTRIGGER, rep, sz, NULL, SK_F_FREE);
+               fio_net_queue_cmd(FIO_NET_CMD_VTRIGGER, rep, sz, NULL, SK_F_FREE | SK_F_INLINE);
 
        exec_trigger(buf);
        return 0;
@@ -1916,11 +1916,10 @@ static int fio_init_server_ip(void)
                return -1;
        }
 #ifdef SO_REUSEPORT
-       if (setsockopt(sk, SOL_SOCKET, SO_REUSEPORT, &opt, sizeof(opt)) < 0) {
-               log_err("fio: setsockopt(REUSEPORT): %s\n", strerror(errno));
-               close(sk);
-               return -1;
-       }
+       /*
+        * Not fatal if fails, so just ignore it if that happens
+        */
+       setsockopt(sk, SOL_SOCKET, SO_REUSEPORT, &opt, sizeof(opt));
 #endif
 
        if (use_ipv6) {