From owner-freebsd-current Mon Oct 20 10:43:43 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id KAA08165 for current-outgoing; Mon, 20 Oct 1997 10:43:43 -0700 (PDT) (envelope-from owner-freebsd-current) Received: from mexico.brainstorm.eu.org (root@mexico.brainstorm.fr [193.56.58.253]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id KAA08011 for ; Mon, 20 Oct 1997 10:40:16 -0700 (PDT) (envelope-from roberto@keltia.freenix.fr) Received: from brasil.brainstorm.eu.org (brasil.brainstorm.fr [193.56.58.33]) by mexico.brainstorm.eu.org (8.8.4/8.8.4) with ESMTP id TAA30015 for ; Mon, 20 Oct 1997 19:38:42 +0200 Received: (from uucp@localhost) by brasil.brainstorm.eu.org (8.8.6/brasil-1.2) with UUCP id TAA15273 for current@FreeBSD.ORG; Mon, 20 Oct 1997 19:38:11 +0200 Received: (from roberto@localhost) by keltia.freenix.fr (8.8.7/keltia-2.11/nospam) id TAA07274; Mon, 20 Oct 1997 19:35:40 +0200 (CEST) (envelope-from roberto) Message-ID: <19971020193540.39453@keltia.freenix.fr> Date: Mon, 20 Oct 1997 19:35:40 +0200 From: Ollivier Robert To: current@FreeBSD.ORG Subject: Re: nullfs & current References: <199710200143.UAA05747@dyson.iquest.net> <406.877333677@critter.freebsd.dk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.84 In-Reply-To: <406.877333677@critter.freebsd.dk>; from Poul-Henning Kamp on Mon, Oct 20, 1997 at 09:47:57AM +0200 X-Operating-System: FreeBSD 3.0-CURRENT ctm#3745 AMD-K6 MMX @ 208 MHz Sender: owner-freebsd-current@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk 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