[PATCH] knfsd: be more selective in which sockets lockd listens on
Currently lockd listens on UDP always, and TCP if CONFIG_NFSD_TCP is set. However as lockd performs services of the client as well, this is a problem. If CONFIG_NfSD_TCP is not set, and a tcp mount is used, the server will not be able to call back to lockd. So: - add an option to lockd_up saying which protocol is needed - Always open sockets for which an explicit port was given, otherwise only open a socket of the type required - Change nfsd to do one lockd_up per socket rather than one per thread. This - removes the dependancy on CONFIG_NFSD_TCP - means that lockd may open sockets other than at startup - 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. Signed-off-by:Neil Brown <neilb@suse.de> Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
Showing
- fs/lockd/clntlock.c 1 addition, 1 deletionfs/lockd/clntlock.c
- fs/lockd/svc.c 40 additions, 7 deletionsfs/lockd/svc.c
- fs/nfs/client.c 2 additions, 1 deletionfs/nfs/client.c
- fs/nfsd/nfssvc.c 10 additions, 6 deletionsfs/nfsd/nfssvc.c
- include/linux/lockd/bind.h 1 addition, 1 deletioninclude/linux/lockd/bind.h
Loading
Please register or sign in to comment