Documented in 1 files:

Defined in 1 files as a function:

Referenced in 5 files:

Smatch caller information:

fs/splice.c add_to_pipe() -> pipe_buf()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
CAPPED_DATA 0 pipe->max_usage 1
DATA_SOURCE 0 pipe $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 pipe->max_usage
NO_OVERFLOW_SIMPLE 0 pipe->nr_accounted
NO_OVERFLOW_SIMPLE 0 pipe->ring_size
UNITS 1 slot unit_array_size

fs/splice.c eat_empty_buffer() -> pipe_buf()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
DATA_SOURCE 0 pipe $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 pipe->max_usage
NO_OVERFLOW_SIMPLE 0 pipe->nr_accounted
NO_OVERFLOW_SIMPLE 0 pipe->ring_size

fs/splice.c iter_file_splice_write() -> pipe_buf()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
DATA_SOURCE 0 pipe $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 pipe->max_usage
NO_OVERFLOW_SIMPLE 0 pipe->nr_accounted
NO_OVERFLOW_SIMPLE 0 pipe->ring_size
HALF_LOCKED2 &inode->i_rwsem

fs/splice.c iter_file_splice_write() -> pipe_buf()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
DATA_SOURCE 0 pipe $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 pipe->max_usage
NO_OVERFLOW_SIMPLE 0 pipe->nr_accounted
NO_OVERFLOW_SIMPLE 0 pipe->ring_size
HALF_LOCKED2 &inode->i_rwsem

fs/splice.c link_pipe() -> pipe_buf()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
DATA_SOURCE 0 pipe $0
RX_PATH
TASK_NOT_RUNNING

fs/splice.c link_pipe() -> pipe_buf()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
CAPPED_DATA 0 pipe->max_usage 1
DATA_SOURCE 0 pipe $1
RX_PATH
TASK_NOT_RUNNING
UNITS 1 slot unit_array_size

fs/splice.c pipe_head_buf() -> pipe_buf()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
DATA_SOURCE 0 pipe $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 pipe->max_usage
NO_OVERFLOW_SIMPLE 0 pipe->nr_accounted
NO_OVERFLOW_SIMPLE 0 pipe->ring_size
UNITS 1 slot unit_array_size

fs/splice.c splice_from_pipe_feed() -> pipe_buf()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
DATA_SOURCE 0 pipe $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 pipe->max_usage
NO_OVERFLOW_SIMPLE 0 pipe->nr_accounted
NO_OVERFLOW_SIMPLE 0 pipe->ring_size

fs/splice.c splice_pipe_to_pipe() -> pipe_buf()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
DATA_SOURCE 0 pipe $0
RX_PATH
TASK_NOT_RUNNING

fs/splice.c splice_pipe_to_pipe() -> pipe_buf()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
CAPPED_DATA 0 pipe->max_usage 1
DATA_SOURCE 0 pipe $1
RX_PATH
TASK_NOT_RUNNING
UNITS 1 slot unit_array_size

fs/splice.c splice_to_pipe() -> pipe_buf()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
CAPPED_DATA 0 pipe->max_usage 1
DATA_SOURCE 0 pipe $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 pipe->max_usage
NO_OVERFLOW_SIMPLE 0 pipe->nr_accounted
NO_OVERFLOW_SIMPLE 0 pipe->ring_size
UNITS 1 slot unit_array_size
HALF_LOCKED2 sk

fs/splice.c splice_to_socket() -> pipe_buf()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
DATA_SOURCE 0 pipe $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 pipe->max_usage
NO_OVERFLOW_SIMPLE 0 pipe->nr_accounted
NO_OVERFLOW_SIMPLE 0 pipe->ring_size
HALF_LOCKED2 &inode->i_rwsem

fs/splice.c splice_to_socket() -> pipe_buf()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
DATA_SOURCE 0 pipe $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 pipe->max_usage
NO_OVERFLOW_SIMPLE 0 pipe->nr_accounted
NO_OVERFLOW_SIMPLE 0 pipe->ring_size
HALF_LOCKED2 &inode->i_rwsem

mm/shmem.c pipe_head_buf() -> pipe_buf()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
DATA_SOURCE 0 pipe $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 pipe->max_usage
NO_OVERFLOW_SIMPLE 0 pipe->nr_accounted
NO_OVERFLOW_SIMPLE 0 pipe->ring_size
UNITS 1 slot unit_array_size

fs/pipe.c anon_pipe_read() -> pipe_buf()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
CAPPED_DATA 0 &pipe->mutex 1
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &pipe->mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct pipe_inode_info)->mutex

fs/pipe.c anon_pipe_write() -> pipe_buf()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &pipe->mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct pipe_inode_info)->mutex

fs/pipe.c anon_pipe_write() -> pipe_buf()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
CAPPED_DATA 0 pipe->max_usage 1
RX_PATH
TASK_NOT_RUNNING
UNITS 1 slot unit_array_size
LOCK2 0 &pipe->mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct pipe_inode_info)->mutex

fs/pipe.c pipe_ioctl() -> pipe_buf()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
CAPPED_DATA 0 &pipe->mutex 1
LOCK2 0 &pipe->mutex
TYPE_LOCK (struct pipe_inode_info)->mutex

kernel/watch_queue.c post_one_notification() -> pipe_buf()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
PARAM_VALUE 0 pipe->ring_size 1-u32max
CAPPED_DATA 0 pipe->ring_size 1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
UNITS 1 slot unit_array_size
LOCK2 &wqueue->lock
LOCK2 bh
LOCK2 irq
LOCK2 rcu_read
LOCK2 0 &pipe->rd_wait.lock
HALF_LOCKED2 &key->sem
TYPE_LOCK (struct wait_queue_head)->lock
TYPE_LOCK (struct watch_queue)->lock

kernel/watch_queue.c post_one_notification() -> pipe_buf()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
CAPPED_DATA 0 pipe->ring_size 1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &wqueue->lock
LOCK2 bh
LOCK2 irq
LOCK2 rcu_read
LOCK2 0 &pipe->rd_wait.lock
HALF_LOCKED2 &key->sem
TYPE_LOCK (struct wait_queue_head)->lock
TYPE_LOCK (struct watch_queue)->lock

mm/filemap.c pipe_head_buf() -> pipe_buf()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
DATA_SOURCE 0 pipe $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 pipe->max_usage
NO_OVERFLOW_SIMPLE 0 pipe->nr_accounted
NO_OVERFLOW_SIMPLE 0 pipe->ring_size
UNITS 1 slot unit_array_size

fs/fuse/dev.c fuse_dev_splice_write() -> pipe_buf()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
DATA_SOURCE 0 pipe $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 pipe->max_usage
NO_OVERFLOW_SIMPLE 0 pipe->nr_accounted
NO_OVERFLOW_SIMPLE 0 pipe->ring_size
HALF_LOCKED2 &inode->i_rwsem

fs/fuse/dev.c fuse_dev_splice_write() -> pipe_buf()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
DATA_SOURCE 0 pipe $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 pipe->max_usage
NO_OVERFLOW_SIMPLE 0 pipe->nr_accounted
NO_OVERFLOW_SIMPLE 0 pipe->ring_size
HALF_LOCKED2 &inode->i_rwsem