joe@fluke.UUCP (Joe Kelsey) (02/19/85)
Index: sys/ufs_alloc.c 4.2BSD +FIX
Description:
In a similar posting, Jim McGinness <decvax!jmcg>, notes that
if the file system becomes full or nearly full, a bug in the
buffer locking protocol in alloccg and ialloccg will cause
an eventual hung system due to a locked buffer eventually
manifesting itself as a locked root inode. Unfortunately, he
neglected to point out one more place to fix.
Repeat-By:
Fill up the file system, then wait a while.
Fix:
In ufs_alloc.c, function alloccg(), add the lines:
if (bno < 0)
+++ {
+++ brelse(bp);
return (NULL);
+++ }
Jim pointed two other places in alloccg that also need to be
fixed, and one place in ialloccg.
/Joe