Calling pool_init() multiple times is bad.  This happens when you kill
nfsd on a machine.

Daniel does this fix your problem?

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 */

Reply via email to