From owner-freebsd-hackers Sat Apr 5 08:58:02 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id IAA16498 for hackers-outgoing; Sat, 5 Apr 1997 08:58:02 -0800 (PST) Received: from pat.idt.unit.no (0@pat.idt.unit.no [129.241.103.5]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id IAA16489 for ; Sat, 5 Apr 1997 08:57:57 -0800 (PST) Received: from idt.unit.no (26850@kamelia.idt.unit.no [129.241.111.27]) by pat.idt.unit.no (8.8.5/8.8.5) with ESMTP id SAA01155; Sat, 5 Apr 1997 18:54:22 +0200 (MET DST) Message-Id: <199704051654.SAA01155@pat.idt.unit.no> To: dfr@nlsystems.com 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: Your message of "Sat, 5 Apr 1997 17:40:31 +0100 (BST)" References: X-Mailer: Mew version 1.06 on Emacs 19.34.1 Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Date: Sat, 05 Apr 1997 18:54:21 +0200 From: Tor Egge Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk > 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. - Tor Egge