Documented in 1 files:

Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

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

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

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

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
PARAM_VALUE 1 buf 4096-ptr_max
PARAM_VALUE 1 buf->len 0
BUF_SIZE 0 pipe s32min-(-1),1-s32max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
DATA_SOURCE 0 pipe $0
DATA_SOURCE 1 buf r pipe_buf
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
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_release()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
PARAM_VALUE 1 buf 4096-ptr_max
PARAM_VALUE 1 buf->len 0
BUF_SIZE 0 pipe s32min-(-1),1-s32max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
DATA_SOURCE 0 pipe $0
DATA_SOURCE 1 buf r pipe_buf
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
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_direct_to_actor() -> pipe_buf_release()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
PARAM_VALUE 0 pipe->bufs 4096-ptr_max
PARAM_VALUE 0 pipe->ring_size 1-u32max
PARAM_VALUE 1 buf 4096-ptr_max
PARAM_VALUE 1 buf->ops 1-u64max
BUF_SIZE 0 pipe (-1),488
BUF_SIZE 0 pipe (-1),488
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
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_from_pipe_feed() -> pipe_buf_release()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
PARAM_VALUE 1 buf 4096-ptr_max
PARAM_VALUE 1 buf->len 0
PARAM_VALUE 1 buf->ops 4096-ptr_max
PARAM_VALUE 1 buf->ops->confirm 0,4096-ptr_max
PARAM_VALUE 1 buf->ops->try_steal 0,4096-ptr_max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
DATA_SOURCE 0 pipe $0
DATA_SOURCE 1 buf r pipe_buf
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 pipe->max_usage
NO_OVERFLOW_SIMPLE 0 pipe->nr_accounted
NO_OVERFLOW_SIMPLE 0 pipe->ring_size
NO_OVERFLOW_SIMPLE 1 buf->len
NO_OVERFLOW_SIMPLE 1 buf->offset

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

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
PARAM_VALUE 0 pipe->writers 1-u32max
PARAM_VALUE 1 buf 4096-ptr_max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
DATA_SOURCE 0 pipe $0
DATA_SOURCE 1 buf r pipe_buf
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
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/pipe.c free_pipe_info() -> pipe_buf_release()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
PARAM_VALUE 0 pipe->ring_size 1-u32max
PARAM_VALUE 0 pipe->user 4096-ptr_max
PARAM_VALUE 0 pipe->user->uidhash_node->next->pprev 1-u64max
PARAM_VALUE 0 pipe->user->uidhash_node.next->pprev 1-u64max
PARAM_VALUE 0 pipe->watch_queue 0,4096-ptr_max
PARAM_VALUE 0 pipe->watch_queue->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 pipe->watch_queue->pipe 0
PARAM_VALUE 1 buf 4096-ptr_max
PARAM_VALUE 1 buf->ops 1-u64max
BUF_SIZE 0 pipe (-1),26,432,488
BUF_SIZE 0 pipe (-1),26,432,488
CAPPED_DATA 0 pipe->user 1
DATA_SOURCE 0 pipe $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 pipe->max_usage
NO_OVERFLOW_SIMPLE 0 pipe->nr_accounted
NO_OVERFLOW_SIMPLE 0 pipe->ring_size

fs/pipe.c pipe_update_tail() -> pipe_buf_release()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
PARAM_VALUE 0 pipe->mutex.dep_map->name 0-255
PARAM_VALUE 0 pipe->mutex.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 pipe->mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 pipe->mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 pipe->mutex.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 pipe->mutex.wait_lock.owner (-1)
PARAM_VALUE 0 pipe->mutex.wait_lock.owner_cpu u32max
PARAM_VALUE 0 pipe->note_loss 0
PARAM_VALUE 1 buf 4096-ptr_max
PARAM_VALUE 1 buf->len 0
PARAM_VALUE 1 buf->ops 4096-ptr_max
PARAM_VALUE 1 buf->ops->confirm 0,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 $0
DATA_SOURCE 1 buf $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 buf->len 0[c][u]
USER_DATA 1 buf->offset 0-u32max[c][u]
LOCK2 0 &pipe->mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct pipe_inode_info)->mutex

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

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
PARAM_VALUE 1 buf 4096-ptr_max
PARAM_VALUE 1 buf->ops 1-u64max
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
NOCHECK_CALL
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_try_move_folio() -> pipe_buf_release()

Type Parameter Key Value
PARAM_VALUE 0 pipe 0,4096-ptr_max
PARAM_VALUE 1 buf 4096-ptr_max
PARAM_VALUE 1 buf->flags 1-u32max
PARAM_VALUE 1 buf->offset 0
PARAM_VALUE 1 buf->ops 4096-ptr_max
PARAM_VALUE 1 buf->ops->confirm 0,4096-ptr_max
PARAM_VALUE 1 buf->ops->try_steal 4096-ptr_max
PARAM_VALUE 1 buf->page 4096-ptr_max
PARAM_VALUE 1 buf->page->memcg_data 0
BUF_SIZE 0 pipe s32min-(-1),1-s32max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 pipe->max_usage
NO_OVERFLOW_SIMPLE 0 pipe->nr_accounted
NO_OVERFLOW_SIMPLE 0 pipe->ring_size