Re: [External] Re: [PATCH v2] sock: add tracepoint for send recv length

From: Steven Rostedt
Date: Thu Jan 05 2023 - 23:07:51 EST


On Fri, 6 Jan 2023 11:24:18 +0800
运辉崔 <cuiyunhui@xxxxxxxxxxxxx> wrote:

> Regardless of whether the MSG_PEEK flag is set or not, it is possible
> to return -errno,
> but based on your suggestion, I plan to modify it like this:
>
> trace_sock_recvmsg_length(sock->sk, sock->sk->sk_family,
> sock->sk->sk_protocol,
> !(flags & MSG_PEEK) ? ret : (ret < 0 ? ret : 0),
>
> what do you think?

Sure.

But note, from your original patch:

> + trace_sock_recvmsg_length(sock->sk, sock->sk->sk_family,
> + sock->sk->sk_protocol,
> + (ret > 0 && !(flags & MSG_PEEK)) ?
> + ret : 0,
> + (ret > 0 && !(flags & MSG_PEEK)) ? 0 : ret,
> + flags);

If flags MSG_PEEK is set, you return ret in error regardless, so error
would be ret even if it was positive.

So I'm guessing that this change actually fixed a bug. ;-)

-- Steve