diff options
| author | John Dyson <dyson@FreeBSD.org> | 1996-02-04 22:09:12 +0000 |
|---|---|---|
| committer | John Dyson <dyson@FreeBSD.org> | 1996-02-04 22:09:12 +0000 |
| commit | dca5129987a1ec4da4a2627b0a4e74a4eaebc5c9 (patch) | |
| tree | 5297a6949c9f87c72275bc64891e478ffb9fbbd2 /sys/kern/sys_pipe.c | |
| parent | 267173e72dc9f967f9d2a8f3bd1e88aae0a417bb (diff) | |
Notes
Diffstat (limited to 'sys/kern/sys_pipe.c')
| -rw-r--r-- | sys/kern/sys_pipe.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/kern/sys_pipe.c b/sys/kern/sys_pipe.c index 4e563c9fd58c..a337c02cf76c 100644 --- a/sys/kern/sys_pipe.c +++ b/sys/kern/sys_pipe.c @@ -185,6 +185,9 @@ free1: return (error); } +/* + * Allocate kva for pipe circular buffer, the space is pageable + */ static void pipespace(cpipe) struct pipe *cpipe; @@ -464,7 +467,7 @@ pipe_build_write_buffer(wpipe, uio) vm_page_t m; - vm_fault_quick( addr, VM_PROT_READ); + vm_fault_quick( (caddr_t) addr, VM_PROT_READ); paddr = pmap_kextract(addr); if (!paddr) { int j; @@ -765,6 +768,10 @@ pipewrite(wpipe, uio, nbio) wakeup(wpipe); } } + + /* + * Don't return EPIPE if I/O was successful + */ if ((wpipe->pipe_buffer.cnt == 0) && (uio->uio_resid == 0) && (error == EPIPE)) |
