Skip site navigation (1)Skip section navigation (2)
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>