On Wed, 2024-08-28 at 21:04 -0400, Mike Snitzer wrote: > Remove BUG_ON if p_arglen=0 to allow RPC with void arg. > Remove BUG_ON if p_replen=0 to allow RPC with void return. > > The former was needed for the first revision of the LOCALIO protocol > which had an RPC that took a void arg: > > /* 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; > > The latter is needed for the final revision of the LOCALIO protocol > which has a UUID_IS_LOCAL RPC which returns a void: > > /* raw RFC 9562 UUID */ > typedef u8 uuid_t<UUID_SIZE>; > > program NFS_LOCALIO_PROGRAM { > version LOCALIO_V1 { > void > NULL(void) = 0; > > void > UUID_IS_LOCAL(uuid_t) = 1; > } = 1; > } = 400122; > > There is really no value in triggering a BUG_ON in response to either > of these previously unsupported conditions. > > NeilBrown would like the entire 'if (proc->p_proc != 0)' branch > removed (not just the one BUG_ON that must be removed for LOCALIO's > immediate needs of returning void). > > Reviewed-by: NeilBrown <neilb@xxxxxxx> > Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx> > --- > net/sunrpc/clnt.c | 6 ------ > 1 file changed, 6 deletions(-) > > diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c > index 09f29a95f2bc..00fe6df11ab7 100644 > --- a/net/sunrpc/clnt.c > +++ b/net/sunrpc/clnt.c > @@ -1893,12 +1893,6 @@ call_allocate(struct rpc_task *task) > if (req->rq_buffer) > return; > > - if (proc->p_proc != 0) { > - BUG_ON(proc->p_arglen == 0); > - if (proc->p_decode != NULL) > - BUG_ON(proc->p_replen == 0); > - } > - > /* > * Calculate the size (in quads) of the RPC call > * and reply headers, and convert both values Yay! More unneeded BUG_ONs gone. Reviewed-by: Jeff Layton <jlayton@xxxxxxxxxx>