2017-07-13 17:51:29

by Colin King

[permalink] [raw]
Subject: [PATCH][net-next] svcrdma: fix an incorrect check on -E2BIG and -EINVAL

From: Colin Ian King <[email protected]>

The current check will always be true and will always jump to
err1, this looks dubious to me. I believe && should be used
instead of ||.

Detected by CoverityScan, CID#1450120 ("Logically Dead Code")

Fixes: 107c1d0a991a ("svcrdma: Avoid Send Queue overflow")
Signed-off-by: Colin Ian King <[email protected]>
---
net/sunrpc/xprtrdma/svc_rdma_sendto.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/sunrpc/xprtrdma/svc_rdma_sendto.c b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
index 19fd01e4b690..7c3a211e0e9a 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_sendto.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
@@ -684,7 +684,7 @@ int svc_rdma_sendto(struct svc_rqst *rqstp)
return 0;

err2:
- if (ret != -E2BIG || ret != -EINVAL)
+ if (ret != -E2BIG && ret != -EINVAL)
goto err1;

ret = svc_rdma_post_recv(rdma, GFP_KERNEL);
--
2.11.0



2017-07-13 17:53:34

by Chuck Lever III

[permalink] [raw]
Subject: Re: [PATCH][net-next] svcrdma: fix an incorrect check on -E2BIG and -EINVAL


> On Jul 13, 2017, at 1:51 PM, Colin King <[email protected]> wrote:
>
> From: Colin Ian King <[email protected]>
>
> The current check will always be true and will always jump to
> err1, this looks dubious to me. I believe && should be used
> instead of ||.
>
> Detected by CoverityScan, CID#1450120 ("Logically Dead Code")
>
> Fixes: 107c1d0a991a ("svcrdma: Avoid Send Queue overflow")
> Signed-off-by: Colin Ian King <[email protected]>

Reviewed-by: Chuck Lever <[email protected]>

Dan reported this today, and I have a similar patch in my
"pending for-rc" series. This one works too.


> ---
> net/sunrpc/xprtrdma/svc_rdma_sendto.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/sunrpc/xprtrdma/svc_rdma_sendto.c b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
> index 19fd01e4b690..7c3a211e0e9a 100644
> --- a/net/sunrpc/xprtrdma/svc_rdma_sendto.c
> +++ b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
> @@ -684,7 +684,7 @@ int svc_rdma_sendto(struct svc_rqst *rqstp)
> return 0;
>
> err2:
> - if (ret != -E2BIG || ret != -EINVAL)
> + if (ret != -E2BIG && ret != -EINVAL)
> goto err1;
>
> ret = svc_rdma_post_recv(rdma, GFP_KERNEL);
> --
> 2.11.0
>

--
Chuck Lever




2017-07-14 01:39:15

by J. Bruce Fields

[permalink] [raw]
Subject: Re: [PATCH][net-next] svcrdma: fix an incorrect check on -E2BIG and -EINVAL

On Thu, Jul 13, 2017 at 01:53:10PM -0400, Chuck Lever wrote:
>
> > On Jul 13, 2017, at 1:51 PM, Colin King <[email protected]> wrote:
> >
> > From: Colin Ian King <[email protected]>
> >
> > The current check will always be true and will always jump to
> > err1, this looks dubious to me. I believe && should be used
> > instead of ||.
> >
> > Detected by CoverityScan, CID#1450120 ("Logically Dead Code")
> >
> > Fixes: 107c1d0a991a ("svcrdma: Avoid Send Queue overflow")
> > Signed-off-by: Colin Ian King <[email protected]>
>
> Reviewed-by: Chuck Lever <[email protected]>
>
> Dan reported this today, and I have a similar patch in my
> "pending for-rc" series. This one works too.

Applied and merged upstream, thanks.

--b.