Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 29 Dec 2007 13:31:27 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/ufs/ffs ffs_balloc.c
Message-ID:  <200712291331.lBTDVR69028699@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
kib         2007-12-29 13:31:27 UTC

  FreeBSD src repository

  Modified files:
    sys/ufs/ffs          ffs_balloc.c 
  Log:
  The ffs_balloc() routines, whan allocating the indirect blocks for
  the inode, do the rollback in case the allocation failed (due to
  insufficient free space or quota limits). But, the code does leaves the
  buffers corresponding to the inoirect blocks on the vnode bufobj list.
  This causes several assertion failures (for instance, "ffs_truncate3"
  in ffs_truncate()) to fail, and could result in the indirect block
  aliasing problem, like writing the context of such blocks to random
  disk location.
  
  Remove the buffers from the bufobj properly.
  
  Reported and tested by: Peter Holm
  Reviewed by:    tegge
  MFC after:      3 weeks
  
  Revision  Changes    Path
  1.52      +42 -2     src/sys/ufs/ffs/ffs_balloc.c



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