Lines Matching refs:pipe
716 struct pipe_inode_info *pipe; member
769 err = buf->ops->confirm(cs->pipe, buf); in fuse_copy_fill()
781 if (cs->nr_segs == cs->pipe->buffers) in fuse_copy_fill()
866 err = buf->ops->confirm(cs->pipe, buf); in fuse_try_move_page()
879 if (buf->ops->steal(cs->pipe, buf) != 0) in fuse_try_move_page()
954 if (cs->nr_segs == cs->pipe->buffers) in fuse_ref_page()
1375 struct pipe_inode_info *pipe, in fuse_dev_splice_read() argument
1387 bufs = kmalloc(pipe->buffers * sizeof(struct pipe_buffer), GFP_KERNEL); in fuse_dev_splice_read()
1393 cs.pipe = pipe; in fuse_dev_splice_read()
1399 pipe_lock(pipe); in fuse_dev_splice_read()
1401 if (!pipe->readers) { in fuse_dev_splice_read()
1408 if (pipe->nrbufs + cs.nr_segs > pipe->buffers) { in fuse_dev_splice_read()
1414 int newbuf = (pipe->curbuf + pipe->nrbufs) & (pipe->buffers - 1); in fuse_dev_splice_read()
1415 struct pipe_buffer *buf = pipe->bufs + newbuf; in fuse_dev_splice_read()
1426 pipe->nrbufs++; in fuse_dev_splice_read()
1430 if (pipe->files) in fuse_dev_splice_read()
1435 pipe_unlock(pipe); in fuse_dev_splice_read()
1439 if (waitqueue_active(&pipe->wait)) in fuse_dev_splice_read()
1440 wake_up_interruptible(&pipe->wait); in fuse_dev_splice_read()
1441 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN); in fuse_dev_splice_read()
1982 static ssize_t fuse_dev_splice_write(struct pipe_inode_info *pipe, in fuse_dev_splice_write() argument
1998 bufs = kmalloc(pipe->buffers * sizeof(struct pipe_buffer), GFP_KERNEL); in fuse_dev_splice_write()
2002 pipe_lock(pipe); in fuse_dev_splice_write()
2005 for (idx = 0; idx < pipe->nrbufs && rem < len; idx++) in fuse_dev_splice_write()
2006 rem += pipe->bufs[(pipe->curbuf + idx) & (pipe->buffers - 1)].len; in fuse_dev_splice_write()
2010 pipe_unlock(pipe); in fuse_dev_splice_write()
2019 BUG_ON(nbuf >= pipe->buffers); in fuse_dev_splice_write()
2020 BUG_ON(!pipe->nrbufs); in fuse_dev_splice_write()
2021 ibuf = &pipe->bufs[pipe->curbuf]; in fuse_dev_splice_write()
2027 pipe->curbuf = (pipe->curbuf + 1) & (pipe->buffers - 1); in fuse_dev_splice_write()
2028 pipe->nrbufs--; in fuse_dev_splice_write()
2030 ibuf->ops->get(pipe, ibuf); in fuse_dev_splice_write()
2040 pipe_unlock(pipe); in fuse_dev_splice_write()
2045 cs.pipe = pipe; in fuse_dev_splice_write()
2054 buf->ops->release(pipe, buf); in fuse_dev_splice_write()