summaryrefslogtreecommitdiffstats
path: root/sys/fs
diff options
context:
space:
mode:
authorrmacklem <rmacklem@FreeBSD.org>2015-07-29 23:06:30 +0000
committerrmacklem <rmacklem@FreeBSD.org>2015-07-29 23:06:30 +0000
commite15fd657a28ab76c163d8eb715e4d6c1a5f5bcc6 (patch)
tree796233eb8d1f50b143faede390c3c8cad4db627a /sys/fs
parentb34a90165d3c4121e1ad598143ccdb891e8c2ca7 (diff)
downloadFreeBSD-src-e15fd657a28ab76c163d8eb715e4d6c1a5f5bcc6.zip
FreeBSD-src-e15fd657a28ab76c163d8eb715e4d6c1a5f5bcc6.tar.gz
This patch fixes a problem where, if the NFSv4 server has a previous
unconfirmed clientid structure for the same client on the last hash list, this old entry would not be removed/deleted. I do not think this bug would have caused serious problems, since the new entry would have been before the old one on the list. This old entry would have eventually been scavenged/removed. Detected while reading the code looking for another bug. MFC after: 3 days
Diffstat (limited to 'sys/fs')
-rw-r--r--sys/fs/nfsserver/nfs_nfsdstate.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/fs/nfsserver/nfs_nfsdstate.c b/sys/fs/nfsserver/nfs_nfsdstate.c
index 15f5243..d1ade4a 100644
--- a/sys/fs/nfsserver/nfs_nfsdstate.c
+++ b/sys/fs/nfsserver/nfs_nfsdstate.c
@@ -220,7 +220,8 @@ nfsrv_setclient(struct nfsrv_descript *nd, struct nfsclient **new_clpp,
break;
}
}
- i++;
+ if (gotit == 0)
+ i++;
}
if (!gotit ||
(clp->lc_flags & (LCL_NEEDSCONFIRM | LCL_ADMINREVOKED))) {
OpenPOWER on IntegriCloud