summaryrefslogtreecommitdiffstats
path: root/sys/isofs/cd9660/cd9660_vnops.c
diff options
context:
space:
mode:
authorgreen <green@FreeBSD.org>2004-02-22 23:00:14 +0000
committergreen <green@FreeBSD.org>2004-02-22 23:00:14 +0000
commit3ae42dea9b7b0cd37170b709f11ec7c0823c5eea (patch)
treeea2d510c28a5217bb976b7983eca41a796ab552b /sys/isofs/cd9660/cd9660_vnops.c
parent9953b0de9beb2cc43a4c6701b5416c6bac276015 (diff)
downloadFreeBSD-src-3ae42dea9b7b0cd37170b709f11ec7c0823c5eea.zip
FreeBSD-src-3ae42dea9b7b0cd37170b709f11ec7c0823c5eea.tar.gz
Correct some major SMP-harmful problems in the pipe implementation. First
of all, PIPE_EOF is not checked pervasively after everything that can drop the pipe mutex and msleep(), so fix. Additionally, though it might not harm anything, pipelock() and pipeunlock() are not used consistently. Third, the kqueue support functions do not use the pipe mutex correctly. Last, but absolutely not least, is a race: if pipe_busy is not set on the closing side of the pipe, the other side that is trying to write to that will crash BECAUSE PIPE_EOF IS NOT SET! Unconditionally set PIPE_EOF, and get rid of all the lockups/crashes I have seen trying to build ports.
Diffstat (limited to 'sys/isofs/cd9660/cd9660_vnops.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud