From owner-freebsd-hackers Sat Apr 5 09:13:51 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id JAA17109 for hackers-outgoing; Sat, 5 Apr 1997 09:13:51 -0800 (PST) Received: from nlsystems.com (nlsys.demon.co.uk [158.152.125.33]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id JAA17101 for ; Sat, 5 Apr 1997 09:13:47 -0800 (PST) Received: from herring.nlsystems.com (herring.nlsystems.com [10.0.0.2]) by nlsystems.com (8.8.5/8.8.5) with SMTP id SAA15191; Sat, 5 Apr 1997 18:11:13 +0100 (BST) Date: Sat, 5 Apr 1997 18:11:13 +0100 (BST) From: Doug Rabson To: Tor Egge cc: terry@lambert.org, dg@root.com, ponds!rivers@dg-rtp.dg.com, freebsd-hackers@freebsd.org Subject: Re: kern/3184: vnodes are used after they are freed. (dup alloc?) In-Reply-To: <199704051654.SAA01155@pat.idt.unit.no> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk On Sat, 5 Apr 1997, Tor Egge wrote: > > I know about this problem. Unfortunately the only way of fixing it is > > probably to keep private pools of vnodes for each filesystem (which Terry > > has been badgering me about for *years*). It might happen but it is a > > fair amount of work. For the moment, I will settle with a system which is > > stable, even it does hang when a server fails. > > Two other ways: > > - Let getnewvnode call VOP_ISLOCKED and skip locked nodes on the > so-called free list. > > - Delay putting vnodes onto the so-called free list until > VOP_INACTIVE has been called, and use a flag to indicate that a > vnode is not on the so-called free list even when v_usecount is > 0. Add needed checks where the code currently assumes that > v_usecount==0 means that the vnode is on the so-called free list. I think I prefer the first alternative, because it seems simpler. -- Doug Rabson Mail: dfr@nlsystems.com Nonlinear Systems Ltd. Phone: +44 181 951 1891