cvs commit: src/sys/kern vfs_cluster.c

Matthew Dillon dillon at
Tue Feb 21 10:50:06 PST 2006

dillon      2006/02/21 10:46:56 PST

DragonFly src repository

  Modified files:
    sys/kern             vfs_cluster.c 
  bioops.io_start() was being called in a situation where the buffer could
  be brelse()'d afterwords instead of I/O being initiated.  When this occurs,
  the buffer may contain softupdates-modified data which is never reverted,
  resulting in serious filesystem corruption.  When io_start is called on a
  buffer, I/O MUST be initiated and terminated with a biodone() or the buffer's
  data may not be properly reverted.
  Solve the problem by moving the io_start() call a little further on in the
  code, after the potential brelse().
  There is a possibility that this bug is responsible for the 'dirbad' panics
  often reported in DragonFly and FreeBSD circles.
  Revision  Changes    Path
  1.16      +7 -6      src/sys/kern/vfs_cluster.c

More information about the Commits mailing list