]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - net/ipv4/ping.c
Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[karo-tx-linux.git] / net / ipv4 / ping.c
index cf9700b1a1061404abb62c906afac1cacb43657a..66ddcb60519a169c02b4f5041d1bf1df731763b8 100644 (file)
@@ -737,6 +737,7 @@ static int ping_v4_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
                /* no remote port */
        }
 
+       ipc.sockc.tsflags = sk->sk_tsflags;
        ipc.addr = inet->inet_saddr;
        ipc.opt = NULL;
        ipc.oif = sk->sk_bound_dev_if;
@@ -744,10 +745,8 @@ static int ping_v4_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
        ipc.ttl = 0;
        ipc.tos = -1;
 
-       sock_tx_timestamp(sk, &ipc.tx_flags);
-
        if (msg->msg_controllen) {
-               err = ip_cmsg_send(sock_net(sk), msg, &ipc, false);
+               err = ip_cmsg_send(sk, msg, &ipc, false);
                if (unlikely(err)) {
                        kfree(ipc.opt);
                        return err;
@@ -768,6 +767,8 @@ static int ping_v4_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
                rcu_read_unlock();
        }
 
+       sock_tx_timestamp(sk, ipc.sockc.tsflags, &ipc.tx_flags);
+
        saddr = ipc.addr;
        ipc.addr = faddr = daddr;