> Date: Fri, 3 Dec 2010 09:59:33 -0500
> From: Ted Unangst <ted.unan...@gmail.com>
> 
> On Fri, Dec 3, 2010 at 9: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?
> >
> > ok?
> 
> what happens when you restart nfsd?

That works just fine.  Everything should be put back into the pool
when nfsd gets killed, so apart from some counters, the pool should be
completely virgin and ready for reuse.

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