cvs commit: src/sys/kern vfs_cluster.c
Matthew Dillon
dillon at crater.dragonflybsd.org
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
Log:
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
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_cluster.c.diff?r1=1.15&r2=1.16&f=u
More information about the Commits
mailing list