Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

drivers/block/rbd.c need_exclusive_lock() -> rbd_is_ro()

Type Parameter Key Value
PARAM_VALUE 0 rbd_dev 4096-ptr_max
BIT_INFO 0 rbd_dev->header.features 0x4,0xffffffffffffffff
PREEMPT_ADD
UNITS 0 rbd_dev unit_byte
HALF_LOCKED2 &img_req->state_mutex
HALF_LOCKED2 &pool->lock

drivers/block/rbd.c rbd_add_acquire_lock() -> rbd_is_ro()

Type Parameter Key Value
PARAM_VALUE 0 rbd_dev 4096-ptr_max
BUF_SIZE 0 rbd_dev 4144
CAPPED_DATA 0 rbd_dev->spec->pool_id 1
DATA_SOURCE 0 rbd_dev $0
CAPABLE 0 21
BIT_INFO 0 rbd_dev->header.features 0x4,0xffffffffffffffff
TERMINATED 0 rbd_dev->spec->image_name 1
TERMINATED 0 rbd_dev->spec->pool_name 1
TERMINATED 0 rbd_dev->spec->snap_name 1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 rbd_dev->header.snapc->seq 0-u64max
USER_DATA 0 rbd_dev->watch_handle->ping_req->r_reply->con->v2.in_cursor.resid 0-u64max
USER_DATA 0 rbd_dev->watch_handle->ping_req->r_request->con->v2.out_cursor.resid 0-u64max
USER_DATA 0 rbd_dev->watch_handle->ping_req->r_request->con->v2.out_iter.count 0-5294967296,18446744071562067969-u64max
USER_DATA 0 rbd_dev->watch_handle->reg_req->r_reply->con->v2.in_cursor.resid 0-u64max
USER_DATA 0 rbd_dev->watch_handle->reg_req->r_request->con->v2.out_cursor.resid 0-u64max
USER_DATA 0 rbd_dev->watch_handle->reg_req->r_request->con->v2.out_iter.count 0-5294967296,18446744071562067969-u64max
NO_OVERFLOW_SIMPLE 0 rbd_dev->tag_set.queue_depth
LOCK2 &of->mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

drivers/block/rbd.c rbd_dev_device_setup() -> rbd_is_ro()

Type Parameter Key Value
PARAM_VALUE 0 rbd_dev 4096-ptr_max
BUF_SIZE 0 rbd_dev 4144
CAPPED_DATA 0 rbd_dev->spec->pool_id 1
DATA_SOURCE 0 rbd_dev $0
CAPABLE 0 21
NOSPEC 0 rbd_dev->tag_set.queue_depth
NOSPEC 0 rbd_dev->tag_set.shared_tags->nr_tags
TERMINATED 0 rbd_dev->spec->image_name 1
TERMINATED 0 rbd_dev->spec->pool_name 1
TERMINATED 0 rbd_dev->spec->snap_name 1
MEM_ZERO 0 &rbd_dev->tag_set
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 rbd_dev->disk->part0->bd_nr_sectors 0-18014398509481983
USER_DATA 0 rbd_dev->header.snapc->seq 0-u64max
USER_DATA 0 rbd_dev->tag_set.queue_depth 1-4096[c]
USER_DATA 0 rbd_dev->tag_set.shared_tags->nr_tags 1-4096[c]
USER_DATA 0 rbd_dev->watch_handle->ping_req->r_reply->con->v2.in_cursor.resid 0-u64max
USER_DATA 0 rbd_dev->watch_handle->ping_req->r_request->con->v2.out_cursor.resid 0-u64max
USER_DATA 0 rbd_dev->watch_handle->ping_req->r_request->con->v2.out_iter.count 0-5294967296,18446744071562067969-u64max
USER_DATA 0 rbd_dev->watch_handle->reg_req->r_reply->con->v2.in_cursor.resid 0-u64max
USER_DATA 0 rbd_dev->watch_handle->reg_req->r_request->con->v2.out_cursor.resid 0-u64max
USER_DATA 0 rbd_dev->watch_handle->reg_req->r_request->con->v2.out_iter.count 0-5294967296,18446744071562067969-u64max
NO_OVERFLOW_SIMPLE 0 rbd_dev->disk->bio_split.bio_pool.min_nr
NO_OVERFLOW_SIMPLE 0 rbd_dev->disk->bio_split.bvec_pool.min_nr
NO_OVERFLOW_SIMPLE 0 rbd_dev->tag_set.shared_tags->bitmap_tags.sb.depth
NO_OVERFLOW_SIMPLE 0 rbd_dev->tag_set.shared_tags->breserved_tags.sb.depth
LOCK2 &of->mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

drivers/block/rbd.c rbd_dev_image_probe() -> rbd_is_ro()

Type Parameter Key Value
PARAM_VALUE 0 rbd_dev 4096-ptr_max
BUF_SIZE 0 rbd_dev 4144
BUF_SIZE 0 rbd_dev->rbd_client (-1),4,24,32,64,168-s32max
DATA_SOURCE 0 rbd_dev $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &of->mutex

drivers/block/rbd.c rbd_dev_image_release() -> rbd_is_ro()

Type Parameter Key Value
PARAM_VALUE 0 rbd_dev 4096-ptr_max
BUF_SIZE 0 rbd_dev (-1),4144
BUF_SIZE 0 rbd_dev (-1),4144
DATA_SOURCE 0 rbd_dev $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 rbd_dev->header.snapc->seq 0-u64max
USER_DATA 0 rbd_dev->watch_handle->ping_req->r_reply->con->v2.in_cursor.resid 0-u64max
USER_DATA 0 rbd_dev->watch_handle->ping_req->r_request->con->v2.out_cursor.resid 0-u64max
USER_DATA 0 rbd_dev->watch_handle->ping_req->r_request->con->v2.out_iter.count 0-5294967296,18446744071562067969-u64max
USER_DATA 0 rbd_dev->watch_handle->reg_req->r_reply->con->v2.in_cursor.resid 0-u64max
USER_DATA 0 rbd_dev->watch_handle->reg_req->r_request->con->v2.out_cursor.resid 0-u64max
USER_DATA 0 rbd_dev->watch_handle->reg_req->r_request->con->v2.out_iter.count 0-5294967296,18446744071562067969-u64max
NO_OVERFLOW_SIMPLE 0 rbd_dev->tag_set.queue_depth
HALF_LOCKED2 &of->mutex

drivers/block/rbd.c rbd_dev_v2_header_onetime() -> rbd_is_ro()

Type Parameter Key Value
PARAM_VALUE 0 rbd_dev 4096-ptr_max
BUF_SIZE 0 rbd_dev->rbd_client (-1),32
DATA_SOURCE 0 rbd_dev $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 0 &rbd_dev->header_rwsem
HALF_LOCKED2 0 &rbd_dev->lock_rwsem

drivers/block/rbd.c rbd_queue_rq() -> rbd_is_ro()

Type Parameter Key Value
BUF_SIZE 0 rbd_dev 128,736,792,816,1000-s32max
BUF_SIZE 0 rbd_dev 128,736,792,816,1000-s32max
RX_PATH
TASK_NOT_RUNNING
UNITS 0 rbd_dev unit_byte
HALF_LOCKED2 __tag_set->srcu
HALF_LOCKED2 rcu_read

drivers/block/rbd.c use_object_map() -> rbd_is_ro()

Type Parameter Key Value
PARAM_VALUE 0 rbd_dev 4096-ptr_max
DATA_SOURCE 0 rbd_dev $0
UNITS 0 rbd_dev unit_byte
LOCK2 &obj_req->state_mutex
HALF_LOCKED2 &img_req->state_mutex
TYPE_LOCK (struct rbd_obj_request)->state_mutex