• Chuck Lever's avatar
    SUNRPC: Refactor RPC server dispatch method · cee4db19
    Chuck Lever authored
    Currently, svcauth_gss_accept() pre-reserves response buffer space
    for the RPC payload length and GSS sequence number before returning
    to the dispatcher, which then adds the header's accept_stat field.
    
    The problem is the accept_stat field is supposed to go before the
    length and seq_num fields. So svcauth_gss_release() has to relocate
    the accept_stat value (see svcauth_gss_prepare_to_wrap()).
    
    To enable these fields to be added to the response buffer in the
    correct (final) order, the pointer to the accept_stat has to be made
    available to svcauth_gss_accept() so that it can set it before
    reserving space for the length and seq_num fields.
    
    As a first step, move the pointer to the location of the accept_stat
    field into struct svc_rqst.
    Reviewed-by: default avatarJeff Layton <jlayton@kernel.org>
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    cee4db19
svc.c 40.3 KB