From owner-freebsd-hackers Fri Nov 8 04:40:42 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id EAA00600 for hackers-outgoing; Fri, 8 Nov 1996 04:40:42 -0800 (PST) Received: from root.com (implode.root.com [198.145.90.17]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id EAA00587 for ; Fri, 8 Nov 1996 04:40:37 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by root.com (8.7.6/8.6.5) with SMTP id EAA05360; Fri, 8 Nov 1996 04:38:52 -0800 (PST) Message-Id: <199611081238.EAA05360@root.com> X-Authentication-Warning: implode.root.com: Host localhost [127.0.0.1] didn't use HELO protocol To: Julian Elischer cc: Archie Cobbs , freebsd-hackers@freebsd.org, mckusick@mckusick.com Subject: Re: Davidg bug (was: mount panics & hangs) In-reply-to: Your message of "Tue, 05 Nov 1996 17:21:56 PST." <327FE834.167EB0E7@whistle.com> From: David Greenman Reply-To: dg@root.com Date: Fri, 08 Nov 1996 04:38:52 -0800 Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk >The only answer I can see is to either make the awakenned >process start again from scratch, >as the mp it has may no longer be valid, >or to put some sort of lock on the whole mount list. I'll look into a fix for this. Unfortunately it appears that similar problems exist in other functions that traverse the mount list. vfs_busy() appears to be fundamentally broken since it references "mp" after waking up from the sleep even though "mp" may no longer be valid. It appears that the only solution to the problem (avoiding massive changes) is to implement a lock around the mountlist. I think that this may create one or more deadlock potentials, however. >BTW there is another small bug, which is.. the return at line "C" >should also do a vfs_unbusy() Thanks! -DG David Greenman Core-team/Principal Architect, The FreeBSD Project