From 0fa0158c375d9c56017daab3aef629886ff2774a Mon Sep 17 00:00:00 2001 From: pooka Date: Fri, 28 Nov 2008 07:23:22 +0000 Subject: [PATCH] Use kmem instead of malloc to avoid hassle with dynamically attaching a malloc type. Makes nfsserver-as-a-module work. reported on current-users & tested by Geoff Wing --- sys/nfs/nfs_export.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/sys/nfs/nfs_export.c b/sys/nfs/nfs_export.c index 0da970d55db1..c2432525c2bc 100644 --- a/sys/nfs/nfs_export.c +++ b/sys/nfs/nfs_export.c @@ -1,4 +1,4 @@ -/* $NetBSD: nfs_export.c,v 1.42 2008/11/25 14:28:42 pooka Exp $ */ +/* $NetBSD: nfs_export.c,v 1.43 2008/11/28 07:23:22 pooka Exp $ */ /*- * Copyright (c) 1997, 1998, 2004, 2005, 2008 The NetBSD Foundation, Inc. @@ -75,7 +75,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nfs_export.c,v 1.42 2008/11/25 14:28:42 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nfs_export.c,v 1.43 2008/11/28 07:23:22 pooka Exp $"); #include #include @@ -123,9 +123,6 @@ struct netexport { CIRCLEQ_HEAD(, netexport) netexport_list = CIRCLEQ_HEAD_INITIALIZER(netexport_list); -/* Malloc type used by the mount<->netexport map. */ -MALLOC_DEFINE(M_NFS_EXPORT, "nfs_export", "NFS export data"); - /* Publicly exported file system. */ struct nfs_public nfs_pub; @@ -189,7 +186,7 @@ nfs_export_unmount(struct mount *mp) netexport_clear(ne); netexport_remove(ne); netexport_wrunlock(); - free(ne, M_NFS_EXPORT); + kmem_free(ne, sizeof(*ne)); } /* @@ -431,7 +428,7 @@ init_exports(struct mount *mp, struct netexport **nep) /* Ensure that we do not already have this mount point. */ KASSERT(netexport_lookup(mp) == NULL); - ne = malloc(sizeof(*ne), M_NFS_EXPORT, M_WAITOK | M_ZERO); + ne = kmem_zalloc(sizeof(*ne), KM_SLEEP); ne->ne_mount = mp; /* Set the default export entry. Handled internally by export upon @@ -442,7 +439,7 @@ init_exports(struct mount *mp, struct netexport **nep) ea.ex_flags |= MNT_EXRDONLY; error = export(ne, &ea); if (error != 0) { - free(ne, M_NFS_EXPORT); + kmem_free(ne, sizeof(*ne)); } else { netexport_insert(ne); *nep = ne;