Use the pool allocator and the "nointr" pool page allocator for LFS inodes.
This commit is contained in:
parent
3ae149efac
commit
38cf17f475
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: lfs_alloc.c,v 1.14 1998/06/24 20:58:48 sommerfe Exp $ */
|
/* $NetBSD: lfs_alloc.c,v 1.15 1998/09/01 03:26:05 thorpej Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1991, 1993
|
* Copyright (c) 1991, 1993
|
||||||
|
@ -47,6 +47,7 @@
|
||||||
#include <sys/syslog.h>
|
#include <sys/syslog.h>
|
||||||
#include <sys/mount.h>
|
#include <sys/mount.h>
|
||||||
#include <sys/malloc.h>
|
#include <sys/malloc.h>
|
||||||
|
#include <sys/pool.h>
|
||||||
|
|
||||||
#include <vm/vm.h>
|
#include <vm/vm.h>
|
||||||
|
|
||||||
|
@ -185,7 +186,7 @@ lfs_vcreate(mp, ino, vpp)
|
||||||
ump = VFSTOUFS(mp);
|
ump = VFSTOUFS(mp);
|
||||||
|
|
||||||
/* Initialize the inode. */
|
/* Initialize the inode. */
|
||||||
MALLOC(ip, struct inode *, sizeof(struct inode), M_LFSNODE, M_WAITOK);
|
ip = pool_get(&lfs_inode_pool, PR_WAITOK);
|
||||||
lockinit(&ip->i_lock, PINOD, "lfsinode", 0, 0);
|
lockinit(&ip->i_lock, PINOD, "lfsinode", 0, 0);
|
||||||
(*vpp)->v_data = ip;
|
(*vpp)->v_data = ip;
|
||||||
ip->i_vnode = *vpp;
|
ip->i_vnode = *vpp;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: lfs_extern.h,v 1.9 1998/06/24 20:58:48 sommerfe Exp $ */
|
/* $NetBSD: lfs_extern.h,v 1.10 1998/09/01 03:26:05 thorpej Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 1991, 1993, 1994
|
* Copyright (c) 1991, 1993, 1994
|
||||||
|
@ -51,6 +51,8 @@ struct lfs;
|
||||||
struct segment;
|
struct segment;
|
||||||
struct ucred;
|
struct ucred;
|
||||||
|
|
||||||
|
extern struct pool lfs_inode_pool; /* memory pool for inodes */
|
||||||
|
|
||||||
__BEGIN_DECLS
|
__BEGIN_DECLS
|
||||||
/* lfs_alloc.c */
|
/* lfs_alloc.c */
|
||||||
int lfs_vcreate __P((struct mount *, ino_t, struct vnode **));
|
int lfs_vcreate __P((struct mount *, ino_t, struct vnode **));
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: lfs_vfsops.c,v 1.22 1998/06/24 20:58:48 sommerfe Exp $ */
|
/* $NetBSD: lfs_vfsops.c,v 1.23 1998/09/01 03:26:05 thorpej Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1989, 1991, 1993, 1994
|
* Copyright (c) 1989, 1991, 1993, 1994
|
||||||
|
@ -53,6 +53,7 @@
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
#include <sys/errno.h>
|
#include <sys/errno.h>
|
||||||
#include <sys/malloc.h>
|
#include <sys/malloc.h>
|
||||||
|
#include <sys/pool.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
|
|
||||||
#include <miscfs/specfs/specdev.h>
|
#include <miscfs/specfs/specdev.h>
|
||||||
|
@ -96,6 +97,8 @@ struct vfsops lfs_vfsops = {
|
||||||
lfs_vnodeopv_descs,
|
lfs_vnodeopv_descs,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct pool lfs_inode_pool;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initialize the filesystem, most work done by ufs_init.
|
* Initialize the filesystem, most work done by ufs_init.
|
||||||
*/
|
*/
|
||||||
|
@ -103,6 +106,13 @@ void
|
||||||
lfs_init()
|
lfs_init()
|
||||||
{
|
{
|
||||||
ufs_init();
|
ufs_init();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* XXX Same structure as FFS inodes? Should we share a common pool?
|
||||||
|
*/
|
||||||
|
pool_init(&lfs_inode_pool, sizeof(struct inode), 0, 0, 0,
|
||||||
|
"lfsinopl", 0, pool_page_alloc_nointr, pool_page_free_nointr,
|
||||||
|
M_LFSNODE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: lfs_vnops.c,v 1.18 1998/06/24 20:58:48 sommerfe Exp $ */
|
/* $NetBSD: lfs_vnops.c,v 1.19 1998/09/01 03:26:05 thorpej Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1986, 1989, 1991, 1993, 1995
|
* Copyright (c) 1986, 1989, 1991, 1993, 1995
|
||||||
|
@ -48,6 +48,7 @@
|
||||||
#include <sys/mount.h>
|
#include <sys/mount.h>
|
||||||
#include <sys/vnode.h>
|
#include <sys/vnode.h>
|
||||||
#include <sys/malloc.h>
|
#include <sys/malloc.h>
|
||||||
|
#include <sys/pool.h>
|
||||||
#include <sys/signalvar.h>
|
#include <sys/signalvar.h>
|
||||||
|
|
||||||
#include <vm/vm.h>
|
#include <vm/vm.h>
|
||||||
|
@ -519,7 +520,7 @@ lfs_reclaim(v)
|
||||||
|
|
||||||
if ((error = ufs_reclaim(vp, ap->a_p)))
|
if ((error = ufs_reclaim(vp, ap->a_p)))
|
||||||
return (error);
|
return (error);
|
||||||
FREE(vp->v_data, M_LFSNODE);
|
pool_put(&lfs_inode_pool, vp->v_data);
|
||||||
vp->v_data = NULL;
|
vp->v_data = NULL;
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue