summaryrefslogtreecommitdiffstats
path: root/utils/statd
diff options
context:
space:
mode:
authorNeil Brown <neilb@suse.de>2007-03-29 13:08:07 +1000
committerNeil Brown <neilb@suse.de>2007-03-29 13:08:07 +1000
commit63d92ed0bc0e62b77e974b10f4ec02f004ef33cc (patch)
tree6f9681ba0afc42d73ec15e0941d2479452d04f42 /utils/statd
parente6da8bc0d56d3106d663ab056b1ca484713f4d77 (diff)
downloadnfs-utils-63d92ed0bc0e62b77e974b10f4ec02f004ef33cc.tar.gz
nfs-utils-63d92ed0bc0e62b77e974b10f4ec02f004ef33cc.tar.xz
nfs-utils-63d92ed0bc0e62b77e974b10f4ec02f004ef33cc.zip
statd - check for 'priv' when looking for duplicate registrations.
From the point of view of the client (lockd), the 'priv' blob is probably the most important key, so make sure to not throw away requests with new 'priv' information. Signed-off-by: Neil Brown <neilb@suse.de>
Diffstat (limited to 'utils/statd')
-rw-r--r--utils/statd/monitor.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/utils/statd/monitor.c b/utils/statd/monitor.c
index 5fcab1d..b0b19da 100644
--- a/utils/statd/monitor.c
+++ b/utils/statd/monitor.c
@@ -145,7 +145,8 @@ sm_mon_1_svc(struct mon *argp, struct svc_req *rqstp)
if (matchhostname(NL_MY_NAME(clnt), my_name) &&
NL_MY_PROC(clnt) == id->my_proc &&
NL_MY_PROG(clnt) == id->my_prog &&
- NL_MY_VERS(clnt) == id->my_vers) {
+ NL_MY_VERS(clnt) == id->my_vers &&
+ memcmp(NL_PRIV(clnt), argp->priv, SM_PRIV_SIZE) == 0) {
/* Hey! We already know you guys! */
dprintf(N_DEBUG,
"Duplicate SM_MON request for %s "