lee@unmvax.UUCP (04/30/84)
Subject: 4.2BSD occasionally trashes files Newsgroups: net.bugs.4bsd Subject: UNIX 4.2 BSD trashes files Index: 4.2BSD kernel Description: Occasionally files will get trashed. This was reported earlier but the only "fix" was a stop-gap measure which controlled the bug by issuing a panic. These mods were made to iput() and closef(). Repeat-By: Hard to, it looks to be a race condition. Fix: The routine irele() would lock an inode without first checking to see if such was already locked. Below is a diff of /sys/sys/ufs_inode.c. I suggest you leave in those panics for awhile just to make sure.... RCS file: RCS/ufs_inode.c,v retrieving revision 1.2 diff -r1.2 ufs_inode.c 2c2 < * $Header: ufs_inode.c,v 1.2 84/02/12 22:47:45 root Exp $ --- > * $Header: ufs_inode.c,v 1.3 84/04/30 02:12:19 root Exp $ 3a4,11 > * Revision 1.3 84/04/30 02:12:19 root > * Think I found the bug with trashed files that the stop gap measure > * (the panic in iput() and closef()) controlled. In irele() it locks > * the inode but does not check to see if it has already been locked. > * I am leaving in the stop-gap panics for now but we should know > * for sure in a month. > * --Lee > * 252c260 < ip->i_flag |= ILOCKED; --- > ilock(ip); -- --Lee (Ward) {ucbvax,convex,gatech,pur-ee}!unmvax!lee
lee@unmvax.UUCP (05/18/84)
Alot of people have sent me mail asking whether things still look as good since the fix I posted. We have not crashed once due to software since it's installation. Now if we could just get that stupid cache board fixed... Thanks for all the encouraging letters. -- --Lee (Ward) {ucbvax,convex,gatech,pur-ee}!unmvax!lee