2014-12-01 18:45:31

by Jeff Layton

[permalink] [raw]
Subject: [PATCH] sunrpc: only call test_bit once in svc_xprt_received

...move the WARN_ON_ONCE inside the following if block since they use
the same condition.

Signed-off-by: Jeff Layton <[email protected]>
---
net/sunrpc/svc_xprt.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c
index 0ae1d78d934d..40ecda40c2ec 100644
--- a/net/sunrpc/svc_xprt.c
+++ b/net/sunrpc/svc_xprt.c
@@ -220,9 +220,11 @@ static struct svc_xprt *__svc_xpo_create(struct svc_xprt_class *xcl,
*/
static void svc_xprt_received(struct svc_xprt *xprt)
{
- WARN_ON_ONCE(!test_bit(XPT_BUSY, &xprt->xpt_flags));
- if (!test_bit(XPT_BUSY, &xprt->xpt_flags))
+ if (!test_bit(XPT_BUSY, &xprt->xpt_flags)) {
+ WARN_ONCE(1, "xprt=0x%p already busy!", xprt);
return;
+ }
+
/* As soon as we clear busy, the xprt could be closed and
* 'put', so we need a reference to call svc_xprt_do_enqueue with:
*/
--
2.1.0



2014-12-08 16:59:03

by J. Bruce Fields

[permalink] [raw]
Subject: Re: [PATCH] sunrpc: only call test_bit once in svc_xprt_received

On Mon, Dec 01, 2014 at 01:45:24PM -0500, Jeff Layton wrote:
> ...move the WARN_ON_ONCE inside the following if block since they use
> the same condition.

Thanks, applying for 3.19

--b.

>
> Signed-off-by: Jeff Layton <[email protected]>
> ---
> net/sunrpc/svc_xprt.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c
> index 0ae1d78d934d..40ecda40c2ec 100644
> --- a/net/sunrpc/svc_xprt.c
> +++ b/net/sunrpc/svc_xprt.c
> @@ -220,9 +220,11 @@ static struct svc_xprt *__svc_xpo_create(struct svc_xprt_class *xcl,
> */
> static void svc_xprt_received(struct svc_xprt *xprt)
> {
> - WARN_ON_ONCE(!test_bit(XPT_BUSY, &xprt->xpt_flags));
> - if (!test_bit(XPT_BUSY, &xprt->xpt_flags))
> + if (!test_bit(XPT_BUSY, &xprt->xpt_flags)) {
> + WARN_ONCE(1, "xprt=0x%p already busy!", xprt);
> return;
> + }
> +
> /* As soon as we clear busy, the xprt could be closed and
> * 'put', so we need a reference to call svc_xprt_do_enqueue with:
> */
> --
> 2.1.0
>