Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.3 4.3bds beta 6/6/85; site pucc-h Path: utzoo!watmath!clyde!cbosgd!ihnp4!inuxc!pur-ee!pucc-j!pucc-h!ach From: ach@pucc-h (Stephen Uitti) Newsgroups: net.bugs.2bsd Subject: Re: Bug in umount code Message-ID: <2713@pucc-h> Date: Wed, 19-Mar-86 12:03:47 EST Article-I.D.: pucc-h.2713 Posted: Wed Mar 19 12:03:47 1986 Date-Received: Fri, 21-Mar-86 04:17:26 EST References: <1307@mit-eddie.MIT.EDU> Reply-To: ach@pucc-h.UUCP (Stephen Uitti) Organization: Purdue University Computing Center Lines: 32 Keywords: umount block cache slow devices In article <1307@mit-eddie.MIT.EDU> jfw@mit-eddie.MIT.EDU (John Woods) writes: >There appears to be a bug in umount on slow devices (and in principle on >faster ones). umount invalidates the entries in the buffer cache by setting >their b_dev field to -1. However, slow devices like RK05s and RX02s, when >they finally get around to looking at these entries some time later, find >that they point to non-existant devices (like minor device 7 in the case of >the RK05). Is there a standard fix for this problem? >-- >John Woods, Charles River Data Systems >decvax!frog!john, mit-eddie!jfw, JFW%mit-ccc@MIT-XX Yes. This is not a bug that's limited to 2.9. It's probably found everywhere, and has existed from the dawn of time. I remember reading a note from someone at Digital Equipement Corp, saying he'd fixed the bug. He said something like, "it was a pain to fix, and required several tries to get it right", but gave no real hints on how to fix it, other than he said that "sumount" should wait until all the blocks are written out (after the call to "update" (internal name for sync) (which schedules the writes but returns immediately)) before the file systems are actually unmounted. Actually, maybe the solution is to have "update" wait for the I/O to finish, so a command line "sync" really does what you want it to do. I haven't looked at the problem other than to verify that it exists. I have been bitten by the bug with rk07's. I ran "umount", then physically unmounted the pack, then mounted a new pack, at which point, the kernel finished it's writes. The new pack's file systems were completely screwed up. Stephen Uitti, Purdue University Computing Center. ach@pucc-j.