]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
splice: fix problems with sys_tee()
authorJens Axboe <axboe@suse.de>
Mon, 10 Jul 2006 09:00:01 +0000 (11:00 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 25 Jul 2006 03:35:24 +0000 (20:35 -0700)
commit5bd9689ce4b9ffd657be1462f4b2f5a0d10cd450
treefc298adc416f5ca573d24dcc65acd4994d726dd9
parent015b18b4bff96be06c0396c03650be06091dafbc
splice: fix problems with sys_tee()

Several issues noticed/fixed:

- We cannot reliably block in link_pipe() while holding both input and output
  mutexes. So do preparatory checks before locking down both mutexes and doing
  the link.

- The ipipe->nrbufs vs i check was bad, because we could have dropped the
  ipipe lock in-between. This causes us to potentially look at unknown
  buffers if we were racing with someone else reading this pipe.

Signed-off-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/splice.c