NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

PR/26567 CVS commit: src/sys

The following reply was made to PR kern/26567; it has been noted by GNATS.

From: David Laight <>
Subject: PR/26567 CVS commit: src/sys
Date: Sun, 20 Dec 2009 09:36:07 +0000

 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