DragonFly commits List (threaded) for 2006-02
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
cvs commit: src/sys/kern vfs_cluster.c
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
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]