Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Jan 2000 00:27:01 -0800 (PST)
From:      Kirk McKusick <mckusick@FreeBSD.org>
To:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/ufs/ffs ffs_balloc.c
Message-ID:  <200001110827.AAA86138@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
mckusick    2000/01/11 00:27:01 PST

  Modified files:
    sys/ufs/ffs          ffs_balloc.c 
  Log:
  The only known cause of this panic is running out of disk space.
  The problem occurs when an indirect block and a data block are
  being allocated at the same time. For example when the 13th block
  of the file is written, the filesystem needs to allocate the first
  indirect block and a data block. If the indirect block allocation
  succeeds, but the data block allocation fails, the error code
  dellocates the indirect block as it has nothing at which to point.
  Unfortunately, it does not deallocate the indirect block's associated
  dependencies which then fail when they find the block unexpectedly
  gone (ptr == 0 instead of its expected value). The fix is to fsync
  the file before doing the block rollback, as the fsync will flush
  out all of the dependencies. Once the rollback is done the file
  must be fsync'ed again so that the soft updates code does not find
  unexpected changes. This approach is much slower than writing the
  code to back out the extraneous dependencies, but running out of
  disk space is not expected to be a common occurence, so just getting
  it right is the main criterion.
  
  PR:		kern/15063
  Submitted by:	Assar Westerlund <assar@stacken.kth.se>
  
  Revision  Changes    Path
  1.25      +14 -4     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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200001110827.AAA86138>