Re: [PATCH v7 12/20] SUNRPC: remove call_allocate() BUG_ON if p_arglen=0 to allow RPC with void arg

NeilBrown
2024-06-25T23:19:56Z

On Tue, 25 Jun 2024, Mike Snitzer wrote:
> This is needed for the LOCALIO protocol's GETUUID RPC which takes a
> void arg. The LOCALIO protocol spec in rpcgen syntax is:
>
> /* raw RFC 9562 UUID */
> typedef u8 uuid_t<UUID_SIZE>;
>
> program NFS_LOCALIO_PROGRAM {
> version LOCALIO_V1 {
> void
> NULL(void) = 0;
>
> uuid_t
> GETUUID(void) = 1;
> } = 1;
> } = 400122;
>
> Signed-off-by: Mike Snitzer <snitzer@kernel.org>
> ---
> net/sunrpc/clnt.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
> index cfd1b1bf7e35..2d7f96103f08 100644
> --- a/net/sunrpc/clnt.c
> +++ b/net/sunrpc/clnt.c
> @@ -1894,7 +1894,6 @@ call_allocate(struct rpc_task *task)
> return;
>
> if (proc->p_proc != 0) {
> - BUG_ON(proc->p_arglen == 0);
> if (proc->p_decode != NULL)
> BUG_ON(proc->p_replen == 0);
> }

I would be in favour get rid of all 5 lines.
I wonder if p_decode is ever NULL. It would cause
rpcauth_unwrap_resp_decode() problems.

NeilBrown

> --
> 2.44.0
>
>