cvs commit: src/sys/vfs/msdosfs msdosfs_denode.c
Matthew Dillon
dillon at crater.dragonflybsd.org
Mon Jul 30 07:45:22 PDT 2007
dillon 2007/07/30 07:44:56 PDT
DragonFly src repository
Modified files:
sys/vfs/msdosfs msdosfs_denode.c
Log:
When an inode collision occurs a partially initialized vnode will be
destroyed. Fix several NULL pointer dereferences in msdosfs that could
occur in this case. Loosely taken from the UFS code.
Inode collision checks were added to DragonFly to close race conditions
in both the creation and termination of a vnode that were found in UFS.
Subsequently other filesystems were found to have the same race conditions.
Because the VM cache is based on filesystem objects and not on physical
disk blocks, such collisions could result in multiple buffers associated
with different vnodes referencing the same physical disk block and I/O
reordering would then cause stale data to be written to disk.
Submitted-by: "Nicolas Thery" <nthery at gmail.com>
Revision Changes Path
1.30 +5 -4 src/sys/vfs/msdosfs/msdosfs_denode.c
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/msdosfs/msdosfs_denode.c.diff?r1=1.29&r2=1.30&f=u
More information about the Commits
mailing list