From owner-cvs-all Thu Feb 24 15:30:13 2000 Delivered-To: cvs-all@freebsd.org Received: from implode.root.com (root.com [209.102.106.178]) by hub.freebsd.org (Postfix) with ESMTP id AD02037BC82; Thu, 24 Feb 2000 15:30:07 -0800 (PST) (envelope-from dg@implode.root.com) Received: from implode.root.com (localhost [127.0.0.1]) by implode.root.com (8.8.8/8.8.5) with ESMTP id PAA10328; Thu, 24 Feb 2000 15:27:55 -0800 (PST) Message-Id: <200002242327.PAA10328@implode.root.com> To: Matt Dillon Cc: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/ufs/ffs ffs_balloc.c In-reply-to: Your message of "Thu, 24 Feb 2000 12:43:22 PST." <200002242043.MAA17349@freefall.freebsd.org> From: David Greenman Reply-To: dg@root.com Date: Thu, 24 Feb 2000 15:27:55 -0800 Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk Excellent troubleshooting on this, BTW. Excellent work! -DG David Greenman Co-founder/Principal Architect, The FreeBSD Project - http://www.freebsd.org Creator of high-performance Internet servers - http://www.terasolutions.com Pave the road of life with opportunities. >dillon 2000/02/24 12:43:22 PST > > Modified files: > sys/ufs/ffs ffs_balloc.c > Log: > Fix a 'freeing free block' panic in UFS. The problem occurs when the > filesystem fills up. If the first indirect block exists and FFS is able > to allocate deeper indirect blocks, but is not able to allocate the > data block, FFS improperly unwinds the indirect blocks and leaves a > block pointer hanging to a freed block. This will cause a panic later > when the file is removed. The solution is to properly account for the > first block-pointer-to-an-indirect-block we had to create in a balloc > operation and then unwind it if a failure occurs. > > Detective work by: Ian Dowse > Reviewed by: mckusick, Ian Dowse > Approved by: jkh > > Revision Changes Path > 1.26 +25 -2 src/sys/ufs/ffs/ffs_balloc.c > > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message