On Fri, Dec 3, 2010 at 7:09 AM, Mark Kettenis <mark.kette...@xs4all.nl> wrote: > Calling pool_init() multiple times is bad. This happens when you kill > nfsd on a machine. > > Daniel does this fix your problem?
I applied the patch on a recent snapshot, recompiled the kernel and can no longer reproduce the issue. NFS operations appear to work fine and I cannot reproduce the issue even after restarting nfsd multiple times. FWIW, I uncovered this issue after updating a system to 4.7--4.6 did not have this issue. Thank you Mark. > ok? > > > Index: nfs_syscalls.c > =================================================================== > RCS file: /cvs/src/sys/nfs/nfs_syscalls.c,v > retrieving revision 1.91 > diff -u -p -r1.91 nfs_syscalls.c > --- nfs_syscalls.c 7 Aug 2010 03:50:02 -0000 1.91 > +++ nfs_syscalls.c 3 Dec 2010 14:06:26 -0000 > @@ -549,8 +549,9 @@ nfsrv_init(int terminating) > M_WAITOK|M_ZERO); > TAILQ_INSERT_HEAD(&nfssvc_sockhead, nfs_udpsock, ns_chain); > > - pool_init(&nfsrv_descript_pl, sizeof(struct nfsrv_descript), 0, 0, 0, > - "ndscpl", &pool_allocator_nointr); > + if (!terminating) > + pool_init(&nfsrv_descript_pl, sizeof(struct nfsrv_descript), > + 0, 0, 0, "ndscpl", &pool_allocator_nointr); > } > #endif /* NFSSERVER */