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

Reply via email to