summaryrefslogtreecommitdiffstats
path: root/sys/nfsserver
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>2008-03-19 12:33:25 +0000
committerdfr <dfr@FreeBSD.org>2008-03-19 12:33:25 +0000
commitcba668f51cce03f59a2f1a209727924c7318e6be (patch)
tree007cd475b622c115069a258ec6bc44f52a1e4f3b /sys/nfsserver
parentc734f7062f4c01442642135abe2e989ef77c7fed (diff)
downloadFreeBSD-src-cba668f51cce03f59a2f1a209727924c7318e6be.zip
FreeBSD-src-cba668f51cce03f59a2f1a209727924c7318e6be.tar.gz
Fix a regression from the last revision - don't edit the ns_rec list while
not holding the lock.
Diffstat (limited to 'sys/nfsserver')
-rw-r--r--sys/nfsserver/nfs_srvsock.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/nfsserver/nfs_srvsock.c b/sys/nfsserver/nfs_srvsock.c
index cb4c69e..1a7f91b 100644
--- a/sys/nfsserver/nfs_srvsock.c
+++ b/sys/nfsserver/nfs_srvsock.c
@@ -655,9 +655,11 @@ nfsrv_getstream(struct nfssvc_sock *slp, int waitflag)
nfs_realign(&slp->ns_frag, 10 * NFSX_UNSIGNED);
rec->nr_address = NULL;
rec->nr_packet = slp->ns_frag;
+ NFSD_LOCK();
STAILQ_INSERT_TAIL(&slp->ns_rec, rec, nr_link);
+ } else {
+ NFSD_LOCK();
}
- NFSD_LOCK();
if (!rec) {
m_freem(slp->ns_frag);
}
OpenPOWER on IntegriCloud