diff options
author | dfr <dfr@FreeBSD.org> | 2008-03-19 12:33:25 +0000 |
---|---|---|
committer | dfr <dfr@FreeBSD.org> | 2008-03-19 12:33:25 +0000 |
commit | cba668f51cce03f59a2f1a209727924c7318e6be (patch) | |
tree | 007cd475b622c115069a258ec6bc44f52a1e4f3b /sys/nfsserver | |
parent | c734f7062f4c01442642135abe2e989ef77c7fed (diff) | |
download | FreeBSD-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.c | 4 |
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); } |