Date: Tue, 21 Oct 1997 20:38:07 +0200 From: Ollivier Robert <roberto@keltia.freenix.fr> To: current@FreeBSD.ORG Subject: Re: nullfs & current UPDATE! Message-ID: <19971021203807.51847@keltia.freenix.fr> In-Reply-To: <406.877333677@critter.freebsd.dk>; from Poul-Henning Kamp on Mon, Oct 20, 1997 at 09:47:57AM %2B0200 References: <199710200143.UAA05747@dyson.iquest.net> <406.877333677@critter.freebsd.dk>
next in thread | previous in thread | raw e-mail | index | archive | help
According to Poul-Henning Kamp:
> Whatever needs to be done should probably be done in null_inactive(),
> look at sys/ufs/ufs/ufs_inode.c:ufs_inactive().
By using the following patch, I've been able to create and delete hundreds
of files in a nullfs mounted directory. No vnode leak as far as I can see
from the sysctl debug.numvnodes. fsck reports no missing blocks. No panic,
just works. Now that seems too easy :-)
I know there is a comment in null_inactive() about doing nothing in there
but it seemed logical to inform the lower layer...
PS: a similar problem is in umapfs which is based on nullfs.
Opinions about this ?
Index: null_vnops.c
===================================================================
RCS file: /spare/FreeBSD-current/src/sys/miscfs/nullfs/null_vnops.c,v
retrieving revision 1.24
diff -u -2 -r1.24 null_vnops.c
--- null_vnops.c 1997/10/15 10:04:31 1.24
+++ null_vnops.c 1997/10/21 18:31:52
@@ -534,4 +534,7 @@
} */ *ap;
{
+ struct vnode *vp = ap->a_vp;
+ struct null_node *xp = VTONULL(vp);
+ struct vnode *lowervp = xp->null_lowervp;
/*
* Do nothing (and _don't_ bypass).
@@ -546,4 +549,5 @@
* That's too much work for now.
*/
+ VOP_INACTIVE(lowervp, ap->a_p);
VOP_UNLOCK(ap->a_vp, 0, ap->a_p);
return (0);
--
Ollivier ROBERT -=- FreeBSD: There are no limits -=- roberto@keltia.freenix.fr
FreeBSD keltia.freenix.fr 3.0-CURRENT #41: Sat Oct 18 18:47:01 CEST 1997
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19971021203807.51847>
