fdatasync sockets after send
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 2 Sep 2011 17:02:38 +0000 (13:02 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 2 Sep 2011 17:02:38 +0000 (13:02 -0400)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
libust/lttng-ust-comm.c

index c5a3064ae216f222771e7acd99199ea12a520085..1507a65fcd588a3276d863d87f36a1ff1c22d295 100644 (file)
@@ -184,6 +184,10 @@ int register_app_to_sessiond(int socket)
        ret = lttcomm_send_unix_sock(socket, &reg_msg, sizeof(reg_msg));
        if (ret >= 0 && ret != sizeof(reg_msg))
                return -EIO;
+       ret = fdatasync(socket);
+       if (ret) {
+               return -errno;
+       }
        return ret;
 }
 
@@ -191,11 +195,17 @@ static
 int send_reply(int sock, struct lttcomm_ust_reply *lur)
 {
        ssize_t len;
+       int ret;
 
        len = lttcomm_send_unix_sock(sock, lur, sizeof(*lur));
        switch (len) {
        case sizeof(*lur):
                DBG("message successfully sent");
+               ret = fdatasync(sock);
+               if (ret) {
+                       DBG("fdatasync error");
+                       return -1;
+               }
                return 0;
        case -1:
                if (errno == ECONNRESET) {
This page took 0.024073 seconds and 4 git commands to generate.