Defined in 1 files as a prototype:

Defined in 2 files as a member:

Defined in 1 files as a function:

Referenced in 6 files:

Smatch caller information:

fs/coredump.c wait_for_dump_helpers() -> pipe_lock()

Type Parameter Key Value
BUF_SIZE 0 pipe s32min-(-2),1-s32max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/coredump.c wait_for_dump_helpers() -> pipe_lock()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
PARAM_VALUE 0 pipe->rd_wait.lock.rlock.dep_map->name 0-255
BUF_SIZE 0 pipe s32min-(-2),1-s32max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
CAPPED_DATA 0 pipe->fasync_readers 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/splice.c ipipe_prep() -> pipe_lock()

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 1
DATA_SOURCE 0 pipe $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

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

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
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 opipe_prep() -> pipe_lock()

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 $0
CONSTRAINT 0 pipe->max_usage <=4132
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/splice.c splice_file_to_pipe() -> pipe_lock()

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

fs/splice.c splice_from_pipe() -> pipe_lock()

Type Parameter Key Value
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

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

Type Parameter Key Value
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/splice.c vmsplice_to_pipe() -> pipe_lock()

Type Parameter Key Value
PARAM_VALUE 0 pipe 1-u64max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
DATA_SOURCE 0 pipe r get_pipe_info
NOCHECK_CALL

fs/splice.c vmsplice_to_user() -> pipe_lock()

Type Parameter Key Value
PARAM_VALUE 0 pipe 1-u64max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
DATA_SOURCE 0 pipe r get_pipe_info
NOCHECK_CALL

fs/pipe.c pipe_double_lock() -> pipe_lock()

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 [m]
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/pipe.c pipe_double_lock() -> pipe_lock()

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 $1 [m]
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/pipe.c pipe_wait_readable() -> pipe_lock()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
PARAM_VALUE 0 pipe->writers 1-u32max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
BUF_SIZE 0 pipe s32min-(-1),1-s32max
CAPPED_DATA 0 pipe 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_wait_writable() -> pipe_lock()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
PARAM_VALUE 0 pipe->readers 1-u32max
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
CONSTRAINT 0 pipe <=4132
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/pipe.c wait_for_partner() -> pipe_lock()

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->list.prev->next 5159360019465732096
PARAM_VALUE 0 pipe->mutex.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 pipe->rd_wait.head.next->next 4096-ptr_max
PARAM_VALUE 0 pipe->rd_wait.head.prev->next 4096-ptr_max
PARAM_VALUE 0 pipe->rd_wait.head.prev->prev 4096-ptr_max
PARAM_VALUE 0 pipe->rd_wait.lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 pipe->wr_wait.head.next->next 4096-ptr_max
PARAM_VALUE 0 pipe->wr_wait.head.prev->next 4096-ptr_max
PARAM_VALUE 0 pipe->wr_wait.head.prev->prev 4096-ptr_max
BUF_SIZE 0 pipe (-1),488
BUF_SIZE 0 pipe (-1),488
DATA_SOURCE 0 pipe $0
RX_PATH
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 pipe->max_usage
NO_OVERFLOW_SIMPLE 0 pipe->nr_accounted
NO_OVERFLOW_SIMPLE 0 pipe->ring_size
LOCK2 0 &pipe->mutex
TYPE_LOCK (struct pipe_inode_info)->mutex

kernel/watch_queue.c watch_queue_set_filter() -> pipe_lock()

Type Parameter Key Value
PARAM_VALUE 0 pipe 4096-ptr_max
PARAM_VALUE 0 pipe->watch_queue 1-u64max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
BUF_SIZE 0 pipe s32min-(-2),1-s32max
DATA_SOURCE 0 pipe $0
NOCHECK_CALL

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

Type Parameter Key Value
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_dev_splice_write() -> pipe_lock()

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
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

drivers/char/virtio_console.c port_fops_splice_write() -> pipe_lock()

Type Parameter Key Value
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