From owner-cvs-sys Tue Dec 9 00:12:50 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id AAA12027 for cvs-sys-outgoing; Tue, 9 Dec 1997 00:12:50 -0800 (PST) (envelope-from owner-cvs-sys) Received: from critter.freebsd.dk (critter.freebsd.dk [195.8.129.26]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id AAA11943; Tue, 9 Dec 1997 00:11:53 -0800 (PST) (envelope-from phk@critter.freebsd.dk) Received: from critter.freebsd.dk (localhost.cybercity.dk [127.0.0.1]) by critter.freebsd.dk (8.8.7/8.8.7) with ESMTP id JAA25218; Tue, 9 Dec 1997 09:09:37 +0100 (CET) (envelope-from phk@critter.freebsd.dk) To: Sean Eric Fagan cc: cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG, cvs-sys@FreeBSD.ORG Subject: Re: cvs commit: src/sys/miscfs/procfs procfs_subr.c In-reply-to: Your message of "Mon, 08 Dec 1997 21:03:43 PST." <199712090503.VAA25960@freefall.freebsd.org> Date: Tue, 09 Dec 1997 09:09:37 +0100 Message-ID: <25216.881654977@critter.freebsd.dk> From: Poul-Henning Kamp Sender: owner-cvs-sys@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk VNODES 201: ----------- The problem is that the vnodes that you are trying to get rid of are no longer yours to vgone(). You need to store the generation number in v_id together with the vnode pointer, and before you use that vnode, you need to check that the generation number has not changed. The alternative is to hold a reference to the vnode all the time and only let go of it when the process dies. Poul-Henning In message <199712090503.VAA25960@freefall.freebsd.org>, Sean Eric Fagan writes : >sef 1997/12/08 21:03:43 PST > > Modified files: > sys/miscfs/procfs procfs_subr.c > Log: > Code to prevent a panic caused by procfs_exit(). Note that i don't know > what is teh root cause -- but, sometimes, a procfs vnode in pfshead is > apparantly corrupt (or a UFS vnode instead). Without this patch, I can > get it to panic by doing (in csh) > > while (1) > ps auxwww > end > > and it will panic when the PID's wrap. With it, it does not panic. > Yes -- I know that this is NOT the right way to fix it. But I haven't > been able to get it to panic yet (which confuses me). I am going to > be looking into the vgone() code now, as that may be a part of it. > > Revision Changes Path > 1.20 +11 -3 src/sys/miscfs/procfs/procfs_subr.c > -- Poul-Henning Kamp FreeBSD coreteam member phk@FreeBSD.ORG "Real hackers run -current on their laptop."