[PATCH net-next v1] sunrpc: Use ERR_CAST() to return

Yan Zhen posted 1 patch 1 year, 5 months ago
There is a newer version of this series
net/sunrpc/clnt.c                        | 2 +-
net/sunrpc/xprtrdma/svc_rdma_transport.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
[PATCH net-next v1] sunrpc: Use ERR_CAST() to return
Posted by Yan Zhen 1 year, 5 months ago
Using ERR_CAST() is more reasonable and safer, When it is necessary
to convert the type of an error pointer and return it.

Signed-off-by: Yan Zhen <yanzhen@vivo.com>
---
 net/sunrpc/clnt.c                        | 2 +-
 net/sunrpc/xprtrdma/svc_rdma_transport.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
index 09f29a95f2bc..8ee87311b348 100644
--- a/net/sunrpc/clnt.c
+++ b/net/sunrpc/clnt.c
@@ -603,7 +603,7 @@ struct rpc_clnt *rpc_create(struct rpc_create_args *args)
 
 	xprt = xprt_create_transport(&xprtargs);
 	if (IS_ERR(xprt))
-		return (struct rpc_clnt *)xprt;
+		return ERR_CAST(xprt);
 
 	/*
 	 * By default, kernel RPC client connects from a reserved port.
diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c
index 581cc5ed7c0c..c3fbf0779d4a 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_transport.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c
@@ -369,7 +369,7 @@ static struct svc_xprt *svc_rdma_create(struct svc_serv *serv,
 	listen_id = svc_rdma_create_listen_id(net, sa, cma_xprt);
 	if (IS_ERR(listen_id)) {
 		kfree(cma_xprt);
-		return (struct svc_xprt *)listen_id;
+		return ERR_CAST(listen_id);
 	}
 	cma_xprt->sc_cm_id = listen_id;
 
-- 
2.34.1
Re: [PATCH net-next v1] sunrpc: Use ERR_CAST() to return
Posted by Chuck Lever 1 year, 5 months ago
On Thu, Aug 29, 2024 at 09:04:34PM +0800, Yan Zhen wrote:
> Using ERR_CAST() is more reasonable and safer, When it is necessary
> to convert the type of an error pointer and return it.
> 
> Signed-off-by: Yan Zhen <yanzhen@vivo.com>
> ---
>  net/sunrpc/clnt.c                        | 2 +-
>  net/sunrpc/xprtrdma/svc_rdma_transport.c | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
> index 09f29a95f2bc..8ee87311b348 100644
> --- a/net/sunrpc/clnt.c
> +++ b/net/sunrpc/clnt.c
> @@ -603,7 +603,7 @@ struct rpc_clnt *rpc_create(struct rpc_create_args *args)
>  
>  	xprt = xprt_create_transport(&xprtargs);
>  	if (IS_ERR(xprt))
> -		return (struct rpc_clnt *)xprt;
> +		return ERR_CAST(xprt);
>  
>  	/*
>  	 * By default, kernel RPC client connects from a reserved port.
> diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c
> index 581cc5ed7c0c..c3fbf0779d4a 100644
> --- a/net/sunrpc/xprtrdma/svc_rdma_transport.c
> +++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c
> @@ -369,7 +369,7 @@ static struct svc_xprt *svc_rdma_create(struct svc_serv *serv,
>  	listen_id = svc_rdma_create_listen_id(net, sa, cma_xprt);
>  	if (IS_ERR(listen_id)) {
>  		kfree(cma_xprt);
> -		return (struct svc_xprt *)listen_id;
> +		return ERR_CAST(listen_id);
>  	}
>  	cma_xprt->sc_cm_id = listen_id;
>  
> -- 
> 2.34.1
> 
> 

These two hunks should go through separate trees, I think.

The clnt.c hunk needs to go through Anna and Trond's NFS client
tree, and the svc_rdma_transport.c hunk can go through the NFSD
tree (ie, To: me and Jeff).

Can you send two separate patches, please? The RDMA hunk looks OK to
me and I plan to apply it upon receipt of a separate patch.

-- 
Chuck Lever
Re: [PATCH net-next v1] sunrpc: Use ERR_CAST() to return
Posted by Jeff Layton 1 year, 5 months ago
On Thu, 2024-08-29 at 21:04 +0800, Yan Zhen wrote:
> Using ERR_CAST() is more reasonable and safer, When it is necessary
> to convert the type of an error pointer and return it.
> 
> Signed-off-by: Yan Zhen <yanzhen@vivo.com>
> ---
>  net/sunrpc/clnt.c                        | 2 +-
>  net/sunrpc/xprtrdma/svc_rdma_transport.c | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
> index 09f29a95f2bc..8ee87311b348 100644
> --- a/net/sunrpc/clnt.c
> +++ b/net/sunrpc/clnt.c
> @@ -603,7 +603,7 @@ struct rpc_clnt *rpc_create(struct rpc_create_args *args)
>  
>  	xprt = xprt_create_transport(&xprtargs);
>  	if (IS_ERR(xprt))
> -		return (struct rpc_clnt *)xprt;
> +		return ERR_CAST(xprt);
>  
>  	/*
>  	 * By default, kernel RPC client connects from a reserved port.
> diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c
> index 581cc5ed7c0c..c3fbf0779d4a 100644
> --- a/net/sunrpc/xprtrdma/svc_rdma_transport.c
> +++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c
> @@ -369,7 +369,7 @@ static struct svc_xprt *svc_rdma_create(struct svc_serv *serv,
>  	listen_id = svc_rdma_create_listen_id(net, sa, cma_xprt);
>  	if (IS_ERR(listen_id)) {
>  		kfree(cma_xprt);
> -		return (struct svc_xprt *)listen_id;
> +		return ERR_CAST(listen_id);
>  	}
>  	cma_xprt->sc_cm_id = listen_id;
>  

Reviewed-by: Jeff Layton <jlayton@kernel.org>