Source-Changes-D archive

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

Re: CVS commit: src/sys/kern



On Wed, Dec 16, 2009 at 06:24:04AM +0000, David Holland wrote:
> On Tue, Dec 15, 2009 at 06:35:18PM +0000, David Laight wrote:
>  > Modified Files:
>  >    src/sys/kern: sys_pipe.c
>  > 
>  > Log Message:
>  > Don't ERESTART write() calls for now.
>  > I suspect some programs don't allow for the partial transfer.
> 
> More likely, the pipe is stuttering and repeating itself. Once data's
> been transferred, you *have* to succeed and return the amount
> transferred; otherwise anything that tries again (whether the
> application or transparently by syscall restart) is going to send the
> same data over again.

The code to handle that is in the sys_read()/sys_write() path.
In the same place that EINTR gets converted to 'success' if
any bytes have been transferred.

        David

-- 
David Laight: david%l8s.co.uk@localhost


Home | Main Index | Thread Index | Old Index