From: Peng Fan Convert open-coded if/else with set_bit/clear_bit the assign_bit API. Done with Coccinelle semantic patch: // set_bit -> clear_bit => assign_bit @@ expression cond, bit, addr; @@ -if (cond) - set_bit(bit, addr); -else - clear_bit(bit, addr); +assign_bit(bit, addr, cond); @@ expression cond, bit, addr; @@ -if (cond) - clear_bit(bit, addr); -else - set_bit(bit, addr); +assign_bit(bit, addr, !cond); Signed-off-by: Peng Fan --- net/sunrpc/svcsock.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c index ef7ac080fcd3..d7fa0d1de3ef 100644 --- a/net/sunrpc/svcsock.c +++ b/net/sunrpc/svcsock.c @@ -352,10 +352,8 @@ static void svc_sock_setbufsize(struct svc_sock *svsk, unsigned int nreqs) static void svc_sock_secure_port(struct svc_rqst *rqstp) { - if (svc_port_is_privileged(svc_addr(rqstp))) - set_bit(RQ_SECURE, &rqstp->rq_flags); - else - clear_bit(RQ_SECURE, &rqstp->rq_flags); + assign_bit(RQ_SECURE, &rqstp->rq_flags, + svc_port_is_privileged(svc_addr(rqstp))); } /* @@ -941,10 +939,8 @@ static struct svc_xprt *svc_tcp_accept(struct svc_xprt *xprt) slen = offsetof(struct sockaddr, sa_data); svc_xprt_set_local(&newsvsk->sk_xprt, sin, slen); - if (sock_is_loopback(newsock->sk)) - set_bit(XPT_LOCAL, &newsvsk->sk_xprt.xpt_flags); - else - clear_bit(XPT_LOCAL, &newsvsk->sk_xprt.xpt_flags); + assign_bit(XPT_LOCAL, &newsvsk->sk_xprt.xpt_flags, + sock_is_loopback(newsock->sk)); if (serv->sv_stats) serv->sv_stats->nettcpconn++; @@ -1290,10 +1286,8 @@ static int svc_tcp_recvfrom(struct svc_rqst *rqstp) rqstp->rq_xprt_ctxt = NULL; rqstp->rq_prot = IPPROTO_TCP; - if (test_bit(XPT_LOCAL, &svsk->sk_xprt.xpt_flags)) - set_bit(RQ_LOCAL, &rqstp->rq_flags); - else - clear_bit(RQ_LOCAL, &rqstp->rq_flags); + assign_bit(RQ_LOCAL, &rqstp->rq_flags, + test_bit(XPT_LOCAL, &svsk->sk_xprt.xpt_flags)); /* Completing one message stops ->read_sock with whatever * follows still queued, and no path from here re-arms XPT_DATA. -- 2.51.0