• C
    SUNRPC: NFS kernel APIs shouldn't return ENOENT for "transport not found" · 68717908
    Chuck Lever 提交于
    write_ports() converts svc_create_xprt()'s ENOENT error return to
    EPROTONOSUPPORT so that rpc.nfsd (in user space) can report an error
    message that makes sense.
    
    It turns out that several of the other kernel APIs rpc.nfsd use can
    also return ENOENT from svc_create_xprt(), by way of lockd_up().
    
    On the client side, an NFSv2 or NFSv3 mount request can also return
    the result of lockd_up().  This error may also be returned during an
    NFSv4 mount request, since the NFSv4 callback service uses
    svc_create_xprt() to create the callback listener.  An ENOENT error
    return results in a confusing error message from the mount command.
    
    Let's have svc_create_xprt() return EPROTONOSUPPORT instead of ENOENT.
    Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
    Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
    68717908
nfsctl.c 35.9 KB