• Mike Snitzer's avatar
    SUNRPC: remove call_allocate() BUG_ONs · 2c891984
    Mike Snitzer authored
    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).
    Signed-off-by: default avatarMike Snitzer <snitzer@kernel.org>
    Reviewed-by: default avatarNeilBrown <neilb@suse.de>
    Reviewed-by: default avatarJeff Layton <jlayton@kernel.org>
    Signed-off-by: default avatarAnna Schumaker <anna.schumaker@oracle.com>
    2c891984
clnt.c 80 KB