Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: src/sys
Module Name: src
Committed By: dsl
Date: Sun Dec 20 09:36:06 UTC 2009
Modified Files:
src/sys/arch/xen/xen: xenevt.c
src/sys/compat/svr4: svr4_net.c
src/sys/compat/svr4_32: svr4_32_net.c
src/sys/dev/dmover: dmover_io.c
src/sys/dev/putter: putter.c
src/sys/kern: kern_descrip.c kern_drvctl.c kern_event.c sys_mqueue.c
sys_pipe.c sys_socket.c uipc_socket.c uipc_syscalls.c vfs_vnops.c
src/sys/net: bpf.c if_tap.c
src/sys/opencrypto: cryptodev.c
src/sys/sys: file.h pipe.h socketvar.h
Log Message:
If a multithreaded app closes an fd while another thread is blocked in
read/write/accept, then the expectation is that the blocked thread will
exit and the close complete.
Since only one fd is affected, but many fd can refer to the same file,
the close code can only request the fs code unblock with ERESTART.
Fixed for pipes and sockets, ERESTART will only be generated after such
a close - so there should be no change for other programs.
Also rename fo_abort() to fo_restart() (this used to be fo_drain()).
Fixes PR/26567
To generate a diff of this commit:
cvs rdiff -u -r1.35 -r1.36 src/sys/arch/xen/xen/xenevt.c
cvs rdiff -u -r1.57 -r1.58 src/sys/compat/svr4/svr4_net.c
cvs rdiff -u -r1.20 -r1.21 src/sys/compat/svr4_32/svr4_32_net.c
cvs rdiff -u -r1.36 -r1.37 src/sys/dev/dmover/dmover_io.c
cvs rdiff -u -r1.25 -r1.26 src/sys/dev/putter/putter.c
cvs rdiff -u -r1.201 -r1.202 src/sys/kern/kern_descrip.c
cvs rdiff -u -r1.30 -r1.31 src/sys/kern/kern_drvctl.c
cvs rdiff -u -r1.67 -r1.68 src/sys/kern/kern_event.c
cvs rdiff -u -r1.28 -r1.29 src/sys/kern/sys_mqueue.c
cvs rdiff -u -r1.126 -r1.127 src/sys/kern/sys_pipe.c
cvs rdiff -u -r1.62 -r1.63 src/sys/kern/sys_socket.c
cvs rdiff -u -r1.195 -r1.196 src/sys/kern/uipc_socket.c
cvs rdiff -u -r1.137 -r1.138 src/sys/kern/uipc_syscalls.c
cvs rdiff -u -r1.167 -r1.168 src/sys/kern/vfs_vnops.c
cvs rdiff -u -r1.149 -r1.150 src/sys/net/bpf.c
cvs rdiff -u -r1.61 -r1.62 src/sys/net/if_tap.c
cvs rdiff -u -r1.50 -r1.51 src/sys/opencrypto/cryptodev.c
cvs rdiff -u -r1.69 -r1.70 src/sys/sys/file.h
cvs rdiff -u -r1.31 -r1.32 src/sys/sys/pipe.h
cvs rdiff -u -r1.122 -r1.123 src/sys/sys/socketvar.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Home |
Main Index |
Thread Index |
Old Index