diff options
Diffstat (limited to 'net/core/skmsg.c')
| -rw-r--r-- | net/core/skmsg.c | 14 | 
1 files changed, 14 insertions, 0 deletions
| diff --git a/net/core/skmsg.c b/net/core/skmsg.c index 2d6249b28928..a86ef7e844f8 100644 --- a/net/core/skmsg.c +++ b/net/core/skmsg.c @@ -474,6 +474,20 @@ int sk_msg_recvmsg(struct sock *sk, struct sk_psock *psock, struct msghdr *msg,  }  EXPORT_SYMBOL_GPL(sk_msg_recvmsg); +bool sk_msg_is_readable(struct sock *sk) +{ +	struct sk_psock *psock; +	bool empty = true; + +	rcu_read_lock(); +	psock = sk_psock(sk); +	if (likely(psock)) +		empty = list_empty(&psock->ingress_msg); +	rcu_read_unlock(); +	return !empty; +} +EXPORT_SYMBOL_GPL(sk_msg_is_readable); +  static struct sk_msg *sk_psock_create_ingress_msg(struct sock *sk,  						  struct sk_buff *skb)  { |