linux/fs/lockd
Chuck Lever 8c3916f4bd NLM: Always start both UDP and TCP listeners
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: Chuck Lever <chuck.lever@oracle.com>
Cc: Neil Brown <neilb@suse.de>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
2008-10-04 17:08:16 -04:00
..
Makefile nfsd: common grace period control 2008-10-03 16:19:02 -04:00
clntlock.c lockd: change nlmclnt_grant() to take a "struct sockaddr *" 2008-10-03 17:02:35 -04:00
clntproc.c lockd: dont return EAGAIN for a permanent error 2008-07-25 10:53:47 -07:00
grace.c nfsd: common grace period control 2008-10-03 16:19:02 -04:00
host.c lockd: Adjust nlmsvc_lookup_host() to accomodate AF_INET6 addresses 2008-10-03 17:02:35 -04:00
mon.c NSM: Use sockaddr_storage for sm_addr field 2008-09-29 18:13:39 -04:00
svc.c NLM: Always start both UDP and TCP listeners 2008-10-04 17:08:16 -04:00
svc4proc.c lockd: Add helper to sanity check incoming NOTIFY requests 2008-10-03 17:02:35 -04:00
svclock.c lockd: reject reclaims outside the grace period 2008-10-03 16:19:20 -04:00
svcproc.c lockd: Add helper to sanity check incoming NOTIFY requests 2008-10-03 17:02:35 -04:00
svcshare.c lockd: fix sparse warning in svcshare.c 2008-04-23 16:13:39 -04:00
svcsubs.c lockd: Teach nlm_cmp_addr() to support AF_INET6 addresses 2008-09-29 18:13:39 -04:00
xdr.c lockd: Remove unused fields in the nlm_reboot structure 2008-10-03 17:02:35 -04:00
xdr4.c lockd: Remove unused fields in the nlm_reboot structure 2008-10-03 17:02:35 -04:00