splice: only return -EAGAIN if there's hope of more data
authorJens Axboe <jens.axboe@oracle.com>
Wed, 20 Feb 2008 09:34:51 +0000 (10:34 +0100)
committerJens Axboe <axboe@carl.home.kernel.dk>
Tue, 4 Mar 2008 10:14:39 +0000 (11:14 +0100)
commit02cf01aea5af7a4d1a38045712fe11bffcc206b0
tree28a5817e0bb4aaf174c9d8a87f34a8aefd754aa6
parent5d87a052c7e5f245bbb3018721b4b0afe0afc252
splice: only return -EAGAIN if there's hope of more data

sys_tee() currently is a bit eager in returning -EAGAIN, it may do so
even if we don't have a chance of anymore data becoming available. So
improve the logic and only return -EAGAIN if we have an attached writer
to the input pipe.

Reported by Johann Felix Soden <johfel@gmx.de> and
Patrick McManus <mcmanus@ducksong.com>.

Tested-by: Johann Felix Soden <johfel@users.sourceforge.net>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
fs/splice.c