handle O_NONBLOCK'ed pipes specific error on write()
according to the write(2) docs:
When write requests greater than {PIPE_BUF} bytes to a pipe that
has available space at least 1 byte, if O_NONBLOCK is set,
write transfers what it can and returns the number of bytes written.
When write requests of {PIPE_BUF} or less bytes to a pipe that has no
enough space, or write requests for greater than {PIPE_BUF} bytes
to a pipe that has no space, if O_NONBLOCK is set,
write returns -1 and sets errno to EAGAIN.
Merge-request: 997
Reviewed-by: Olivier Goffart <olivier.goffart@nokia.com>