Lines Matching refs:pipe
46 if (unlikely(!wqueue->pipe)) { in lock_wqueue()
58 static void watch_queue_pipe_buf_release(struct pipe_inode_info *pipe, in watch_queue_pipe_buf_release() argument
78 generic_pipe_buf_release(pipe, buf); in watch_queue_pipe_buf_release()
102 struct pipe_inode_info *pipe = wqueue->pipe; in post_one_notification() local
108 spin_lock_irq(&pipe->rd_wait.lock); in post_one_notification()
110 mask = pipe->ring_size - 1; in post_one_notification()
111 head = pipe->head; in post_one_notification()
112 tail = pipe->tail; in post_one_notification()
113 if (pipe_full(head, tail, pipe->ring_size)) in post_one_notification()
128 buf = &pipe->bufs[head & mask]; in post_one_notification()
135 smp_store_release(&pipe->head, head + 1); /* vs pipe_read() */ in post_one_notification()
138 spin_unlock_irq(&pipe->rd_wait.lock); in post_one_notification()
141 wake_up_interruptible_sync_poll_locked(&pipe->rd_wait, EPOLLIN | EPOLLRDNORM); in post_one_notification()
145 spin_unlock_irq(&pipe->rd_wait.lock); in post_one_notification()
147 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN); in post_one_notification()
151 buf = &pipe->bufs[(head - 1) & mask]; in post_one_notification()
239 long watch_queue_set_size(struct pipe_inode_info *pipe, unsigned int nr_notes) in watch_queue_set_size() argument
241 struct watch_queue *wqueue = pipe->watch_queue; in watch_queue_set_size()
258 user_bufs = account_pipe_buffers(pipe->user, pipe->nr_accounted, nr_pages); in watch_queue_set_size()
260 if (nr_pages > pipe->max_usage && in watch_queue_set_size()
269 ret = pipe_resize_ring(pipe, roundup_pow_of_two(nr_notes)); in watch_queue_set_size()
301 (void) account_pipe_buffers(pipe->user, nr_pages, pipe->nr_accounted); in watch_queue_set_size()
308 long watch_queue_set_filter(struct pipe_inode_info *pipe, in watch_queue_set_filter() argument
315 struct watch_queue *wqueue = pipe->watch_queue; in watch_queue_set_filter()
374 pipe_lock(pipe); in watch_queue_set_filter()
376 lockdep_is_held(&pipe->mutex)); in watch_queue_set_filter()
377 pipe_unlock(pipe); in watch_queue_set_filter()
608 wqueue->pipe = NULL; in watch_queue_clear()
665 struct pipe_inode_info *pipe; in get_watch_queue() local
671 pipe = get_pipe_info(f.file, false); in get_watch_queue()
672 if (pipe && pipe->watch_queue) { in get_watch_queue()
673 wqueue = pipe->watch_queue; in get_watch_queue()
686 int watch_queue_init(struct pipe_inode_info *pipe) in watch_queue_init() argument
694 wqueue->pipe = pipe; in watch_queue_init()
699 pipe->watch_queue = wqueue; in watch_queue_init()