Documented in 1 files:

Defined in 1 files as a function:

Referenced in 4 files:

Smatch caller information:

fs/splice.c pipe_buf_usage() -> pipe_occupancy()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 head unit_array_size

fs/splice.c pipe_empty() -> pipe_occupancy()

Type Parameter Key Value
DATA_SOURCE 0 head $0
DATA_SOURCE 1 tail $1
RX_PATH
TASK_NOT_RUNNING
UNITS 0 head unit_array_size

fs/splice.c pipe_full() -> pipe_occupancy()

Type Parameter Key Value
DATA_SOURCE 0 head $0
DATA_SOURCE 1 tail $1
RX_PATH
TASK_NOT_RUNNING
UNITS 0 head unit_array_size

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

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 head unit_array_size
HALF_LOCKED2 &inode->i_rwsem

mm/shmem.c pipe_buf_usage() -> pipe_occupancy()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 head unit_array_size

mm/shmem.c pipe_full() -> pipe_occupancy()

Type Parameter Key Value
DATA_SOURCE 0 head $0
DATA_SOURCE 1 tail $1
RX_PATH
TASK_NOT_RUNNING
UNITS 0 head unit_array_size

fs/pipe.c pipe_empty() -> pipe_occupancy()

Type Parameter Key Value
DATA_SOURCE 0 head $0
DATA_SOURCE 1 tail $1
RX_PATH
TASK_NOT_RUNNING
UNITS 0 head unit_array_size
HALF_LOCKED2 &pipe->mutex

fs/pipe.c pipe_full() -> pipe_occupancy()

Type Parameter Key Value
DATA_SOURCE 0 head $0
DATA_SOURCE 1 tail $1
RX_PATH
TASK_NOT_RUNNING
UNITS 0 head unit_array_size
HALF_LOCKED2 &pipe->mutex

fs/pipe.c pipe_resize_ring() -> pipe_occupancy()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
UNITS 0 head unit_array_size
LOCK2 &pipe->mutex
LOCK2 &pipe->rd_wait.lock
LOCK2 irq
TYPE_LOCK (struct pipe_inode_info)->mutex
TYPE_LOCK (struct wait_queue_head)->lock

kernel/watch_queue.c pipe_full() -> pipe_occupancy()

Type Parameter Key Value
DATA_SOURCE 0 head $0
DATA_SOURCE 1 tail $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 head unit_array_size
LOCK2 &pipe->rd_wait.lock
LOCK2 &wqueue->lock
LOCK2 bh
LOCK2 irq
LOCK2 rcu_read
HALF_LOCKED2 &key->sem
TYPE_LOCK (struct wait_queue_head)->lock
TYPE_LOCK (struct watch_queue)->lock

mm/filemap.c pipe_buf_usage() -> pipe_occupancy()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 head unit_array_size
HALF_LOCKED2 &inode->i_rwsem

mm/filemap.c pipe_full() -> pipe_occupancy()

Type Parameter Key Value
DATA_SOURCE 0 head $0
DATA_SOURCE 1 tail $1
RX_PATH
TASK_NOT_RUNNING
UNITS 0 head unit_array_size

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

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 head unit_array_size
HALF_LOCKED2 &inode->i_rwsem

fs/fuse/dev.c pipe_buf_usage() -> pipe_occupancy()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 head unit_array_size

fs/fuse/dev.c pipe_empty() -> pipe_occupancy()

Type Parameter Key Value
DATA_SOURCE 0 head $0
DATA_SOURCE 1 tail $1
RX_PATH
TASK_NOT_RUNNING
UNITS 0 head unit_array_size

drivers/char/virtio_console.c pipe_buf_usage() -> pipe_occupancy()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 head unit_array_size

drivers/char/virtio_console.c pipe_empty() -> pipe_occupancy()

Type Parameter Key Value
DATA_SOURCE 0 head $0
DATA_SOURCE 1 tail $1
RX_PATH
TASK_NOT_RUNNING
UNITS 0 head unit_array_size