Date: Mon, 20 Oct 1997 19:35:40 +0200 From: Ollivier Robert <roberto@keltia.freenix.fr> To: current@FreeBSD.ORG Subject: Re: nullfs & current Message-ID: <19971020193540.39453@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:
> calling vnode_pager_uncache() null_remove() would be wrong, the file
> may still be open.
Right.
> Whatever needs to be done should probably be done in null_inactive(),
> look at sys/ufs/ufs/ufs_inode.c:ufs_inactive().
Hmmm, what about an null_remove() that:
1. refuses if the nullfs is mounted read-only,
2. call VOP_REMOVE() for lowervp
VOP_REMOVE() seems more right here. Except that: how am I supposed to get
hold of the 3 arguments for ufs_remove() ? I can't just give it my own
(null_remove) arguments...
Can I call ufs_inactive (through VOP_INACTIVE()) with lowervp ? (somewhere
I don't think so and I'd have to get host of the current proc pointer
anyway).
When is VOP_RECLAIM() supposed to be called ? In the daemon book, it is
said that VOP_RECLAIM() is called by getnewvnode() when it decides to reuse
a vnode.
I hope I'm not too bothersome here but I'm really trying to understand how
all that stuff is supposed to work...
My feeling is
unlink()
VOP_REMOVE(vp) aka null_bypass() for now
VOP_REMOVE(lowervp) aka ufs_remove()
vrele(vp)
I could be wrong of course.
--
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?19971020193540.39453>
