Commit 5ea54f58 authored by Litao Jiao's avatar Litao Jiao
Browse files

anolis: net/smc: optimize for smc_accept_poll

anolis inclusion
from anolis-v5.10-134
commit 47ee5ae9924895ddfe4c5ebdeecdd3051c5e7cf7
category: performance
bugzilla: https://gitee.com/openeuler/kernel/issues/I782PA
CVE: NA

Reference: https://gitee.com/anolis/hpn-cloud-kernel/commit/47ee5ae9924895ddfe4c5ebdeecdd3051c5e7cf7



--------------------------------

ANBZ: #1742

It is no need to lock accept_q_lock when checking accept_q
is empty or not.

Signed-off-by: default avatarGuangguan Wang <guangguan.wang@linux.alibaba.com>
Acked-by: default avatarTony Lu <tonylu@linux.alibaba.com>
Link: https://gitee.com/anolis/cloud-kernel/pulls/577
Link: https://gitee.com/anolis/cloud-kernel/pulls/906


Signed-off-by: default avatarLitao Jiao <jiaolitao@sangfor.com.cn>
parent febe97ab
Loading
Loading
Loading
Loading
+4 −9
Original line number Diff line number Diff line
@@ -2101,17 +2101,12 @@ static int smc_recvmsg(struct socket *sock, struct msghdr *msg, size_t len,
	return rc;
}

static __poll_t smc_accept_poll(struct sock *parent)
static inline __poll_t smc_accept_poll(struct sock *parent)
{
	struct smc_sock *isk = smc_sk(parent);
	__poll_t mask = 0;

	spin_lock(&isk->accept_q_lock);
	if (!list_empty(&isk->accept_q))
		mask = EPOLLIN | EPOLLRDNORM;
	spin_unlock(&isk->accept_q_lock);
	if (!smc_accept_queue_empty(parent))
		return EPOLLIN | EPOLLRDNORM;

	return mask;
	return 0;
}

static __poll_t smc_poll(struct file *file, struct socket *sock,