• Chuck Lever's avatar
    NLM: Always start both UDP and TCP listeners · 8c3916f4
    Chuck Lever authored
    Commit 24e36663, which first appeared in 2.6.19, changed lockd so that
    the client side starts a UDP listener only if there is a UDP NFSv2/v3
    mount.  Its description notes:
    
        This... means that lockd will *not* listen on UDP if the only
        mounts are TCP mount (and nfsd hasn't started).
    
        The latter is the only one that concerns me at all - I don't know
        if this might be a problem with some servers.
    
    Unfortunately it is a problem for Linux itself.  The rpc.statd daemon
    on Linux uses UDP for contacting the local lockd, no matter which
    protocol is used for NFS mounts.  Without a local lockd UDP listener,
    NFSv2/v3 lock recovery from Linux NFS clients always fails.
    
    Revert parts of commit 24e36663 so lockd_up() always starts both
    listeners.
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    Cc: Neil Brown <neilb@suse.de>
    Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
    8c3916f4
svc.c 13.1 KB