Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 6 files:

Smatch caller information:

net/ceph/messenger_v2.c ceph_con_v2_reset_protocol() -> ceph_release_page_vector()

Type Parameter Key Value
PARAM_VALUE 0 pages 1-u64max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 1 num_pages unit_array_size
LOCK2 &con->mutex
TYPE_LOCK (struct ceph_connection)->mutex

net/ceph/messenger_v2.c ceph_con_v2_reset_protocol() -> ceph_release_page_vector()

Type Parameter Key Value
PARAM_VALUE 0 pages 1-u64max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 1 num_pages unit_array_size
LOCK2 &con->mutex
TYPE_LOCK (struct ceph_connection)->mutex

net/ceph/messenger_v2.c decrypt_tail() -> ceph_release_page_vector()

Type Parameter Key Value
NOCHECK_CALL
UNITS 1 num_pages unit_array_size

net/ceph/messenger_v2.c finish_message() -> ceph_release_page_vector()

Type Parameter Key Value
PARAM_VALUE 0 pages 1-u64max
NOCHECK_CALL
UNITS 1 num_pages unit_array_size
LOCK2 &con->mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct ceph_connection)->mutex

net/ceph/pagevec.c ceph_alloc_page_vector() -> ceph_release_page_vector()

Type Parameter Key Value
PARAM_VALUE 0 pages 4096-ptr_max
PARAM_VALUE 1 num_pages 0-s32max
BUF_SIZE 0 pages 0-u64max
CAPPED_DATA 1 num_pages 1
DATA_SOURCE 0 pages r _kmalloc_noprof
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 1 num_pages unit_array_size
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &mdsc->pool_perm_rwsem
HALF_LOCKED2 &obj_req->state_mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &rbd_dev->lock_rwsem

net/ceph/messenger.c ceph_msg_data_destroy() -> ceph_release_page_vector()

Type Parameter Key Value
BUF_SIZE 0 pages 1-8388608
DATA_SOURCE 1 num_pages r calc_pages_for
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 pages unit_page
HALF_LOCKED2 &con->mutex
HALF_LOCKED2 &mdsc->mutex
HALF_LOCKED2 &mdsc->snap_rwsem
HALF_LOCKED2 &osd->lock
HALF_LOCKED2 &osdc->lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &session->s_mutex

drivers/block/rbd.c __rbd_object_map_load() -> ceph_release_page_vector()

Type Parameter Key Value
PARAM_VALUE 0 pages 16,4096-ptr_max
BUF_SIZE 0 pages s32min-s32max
CAPPED_DATA 1 num_pages 1
DATA_SOURCE 0 pages r ceph_alloc_page_vector
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &rbd_dev->header_rwsem
HALF_LOCKED2 &rbd_dev->lock_rwsem

drivers/block/rbd.c rbd_request_lock() -> ceph_release_page_vector()

Type Parameter Key Value
PARAM_VALUE 0 pages 0
PARAM_VALUE 1 num_pages 0
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

fs/ceph/file.c ceph_sync_write() -> ceph_release_page_vector()

Type Parameter Key Value
PARAM_VALUE 0 pages 16,4096-ptr_max
BUF_SIZE 0 pages s32min-s32max
CAPPED_DATA 1 num_pages 1
DATA_SOURCE 0 pages r ceph_alloc_page_vector
DATA_SOURCE 1 num_pages r calc_pages_for
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 num_pages s32min-s32max[c]
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/ceph/file.c ceph_sync_write() -> ceph_release_page_vector()

Type Parameter Key Value
PARAM_VALUE 0 pages 16,4096-ptr_max
BUF_SIZE 0 pages s32min-s32max
CAPPED_DATA 1 num_pages 1
DATA_SOURCE 0 pages r ceph_alloc_page_vector
DATA_SOURCE 1 num_pages r calc_pages_for
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 num_pages s32min-s32max[c]
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/ceph/file.c ceph_sync_write() -> ceph_release_page_vector()

Type Parameter Key Value
PARAM_VALUE 0 pages 16,4096-ptr_max
BUF_SIZE 0 pages s32min-s32max
CAPPED_DATA 1 num_pages 1
DATA_SOURCE 0 pages r ceph_alloc_page_vector
DATA_SOURCE 1 num_pages r calc_pages_for
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 num_pages s32min-s32max[c]
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/ceph/file.c ceph_sync_write() -> ceph_release_page_vector()

Type Parameter Key Value
PARAM_VALUE 0 pages 16,4096-ptr_max
BUF_SIZE 0 pages s32min-s32max
CAPPED_DATA 1 num_pages 1
DATA_SOURCE 0 pages r ceph_alloc_page_vector
DATA_SOURCE 1 num_pages r calc_pages_for
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 num_pages s32min-s32max[c]
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/ceph/file.c ceph_sync_write() -> ceph_release_page_vector()

Type Parameter Key Value
PARAM_VALUE 0 pages 16,4096-ptr_max
BUF_SIZE 0 pages s32min-s32max
CAPPED_DATA 1 num_pages 1
DATA_SOURCE 0 pages r ceph_alloc_page_vector
DATA_SOURCE 1 num_pages r calc_pages_for
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 num_pages s32min-s32max[c]
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/ceph/file.c ceph_sync_write() -> ceph_release_page_vector()

Type Parameter Key Value
PARAM_VALUE 0 pages 16,4096-ptr_max
BUF_SIZE 0 pages s32min-s32max
CAPPED_DATA 1 num_pages 1
DATA_SOURCE 0 pages r ceph_alloc_page_vector
DATA_SOURCE 1 num_pages r calc_pages_for
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 num_pages s32min-s32max[c]
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/ceph/file.c ceph_sync_write() -> ceph_release_page_vector()

Type Parameter Key Value
PARAM_VALUE 0 pages 4096-ptr_max
BUF_SIZE 0 pages s32min-s32max
CAPPED_DATA 1 num_pages 1
DATA_SOURCE 0 pages r ceph_alloc_page_vector
DATA_SOURCE 1 num_pages r calc_pages_for
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 num_pages s32min-s32max[c]
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/ceph/file.c ceph_sync_write() -> ceph_release_page_vector()

Type Parameter Key Value
PARAM_VALUE 0 pages 4096-ptr_max
BUF_SIZE 0 pages s32min-s32max
CAPPED_DATA 1 num_pages 1
DATA_SOURCE 0 pages r ceph_alloc_page_vector
DATA_SOURCE 1 num_pages r calc_pages_for
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 num_pages s32min-s32max[c]
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/ceph/file.c ceph_sync_write() -> ceph_release_page_vector()

Type Parameter Key Value
PARAM_VALUE 0 pages 4096-ptr_max
BUF_SIZE 0 pages s32min-s32max
CAPPED_DATA 1 num_pages 1
DATA_SOURCE 0 pages r ceph_alloc_page_vector
DATA_SOURCE 1 num_pages r calc_pages_for
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 num_pages s32min-s32max[c]
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/ceph/file.c ceph_sync_write() -> ceph_release_page_vector()

Type Parameter Key Value
PARAM_VALUE 0 pages 16,4096-ptr_max
BUF_SIZE 0 pages s32min-s32max
CAPPED_DATA 1 num_pages 1
DATA_SOURCE 0 pages r ceph_alloc_page_vector
DATA_SOURCE 1 num_pages r calc_pages_for
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 num_pages s32min-s32max[c]
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/ceph/file.c ceph_sync_write() -> ceph_release_page_vector()

Type Parameter Key Value
PARAM_VALUE 0 pages 16,4096-ptr_max
BUF_SIZE 0 pages s32min-s32max
CAPPED_DATA 1 num_pages 1
DATA_SOURCE 0 pages r ceph_alloc_page_vector
DATA_SOURCE 1 num_pages r calc_pages_for
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 num_pages s32min-s32max[c]
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/ceph/file.c ceph_sync_write() -> ceph_release_page_vector()

Type Parameter Key Value
PARAM_VALUE 0 pages 16,4096-ptr_max
BUF_SIZE 0 pages s32min-s32max
CAPPED_DATA 1 num_pages 1
DATA_SOURCE 0 pages r ceph_alloc_page_vector
DATA_SOURCE 1 num_pages r calc_pages_for
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 num_pages s32min-s32max[c]
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

net/ceph/osd_client.c ceph_osd_data_release() -> ceph_release_page_vector()

Type Parameter Key Value
BUF_SIZE 0 pages 1-8388608
DATA_SOURCE 1 num_pages r calc_pages_for
NOCHECK_CALL
UNITS 0 pages unit_page

net/ceph/osd_client.c linger_release() -> ceph_release_page_vector()

Type Parameter Key Value
PARAM_VALUE 0 pages 1-u64max
PARAM_VALUE 1 num_pages 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &osdc->lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &rbd_dev->watch_mutex