• \"J. Bruce Fields\'s avatar
    rpc: add an rpc_pipe_open method · c3810608
    \"J. Bruce Fields\ authored
    We want to transition to a new gssd upcall which is text-based and more
    easily extensible.
    
    To simplify upgrades, as well as testing and debugging, it will help if
    we can upgrade gssd (to a version which understands the new upcall)
    without having to choose at boot (or module-load) time whether we want
    the new or the old upcall.
    
    We will do this by providing two different pipes: one named, as
    currently, after the mechanism (normally "krb5"), and supporting the
    old upcall.  One named "gssd" and supporting the new upcall version.
    
    We allow gssd to indicate which version it supports by its choice of
    which pipe to open.
    
    As we have no interest in supporting *simultaneous* use of both
    versions, we'll forbid opening both pipes at the same time.
    
    So, add a new pipe_open callback to the rpc_pipefs api, which the gss
    code can use to track which pipes have been open, and to refuse opens of
    incompatible pipes.
    
    We only need this to be called on the first open of a given pipe.
    Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
    Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
    c3810608
rpc_pipe.c 21.7 KB