Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 7 files:

Smatch caller information:

drivers/md/dm-rq.c rq_completed() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
DATA_SOURCE 0 md $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 md unit_byte

drivers/md/dm-snap.c snapshot_resume() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
PARAM_VALUE 0 md->holders.counter s32min-s32max
NOCHECK_CALL
LOCK2 &md->suspend_lock

drivers/md/dm-verity-loadpin.c dm_verity_loadpin_is_bdev_trusted() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
CAPPED_DATA 0 md->io_barrier.srcu_ctrp 1
DATA_SOURCE 0 md r dm_get_md
NOCHECK_CALL

drivers/md/dm-ioctl.c __get_dev_cell() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
DATA_SOURCE 0 md r dm_get_md
NOCHECK_CALL
LOCK2 global &_hash_lock

drivers/md/dm-ioctl.c __hash_remove() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
CAPPED_DATA 0 md->io_barrier.srcu_ctrp 1
NOCHECK_CALL
LOCK2 global &_hash_lock

drivers/md/dm-ioctl.c dev_create() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
PARAM_VALUE 0 md->holders.counter 1
NOCHECK_CALL

drivers/md/dm-ioctl.c dev_create() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
CAPPED_DATA 0 md->io_barrier.srcu_ctrp 1
NOCHECK_CALL

drivers/md/dm-ioctl.c dev_remove() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
NOCHECK_CALL

drivers/md/dm-ioctl.c dev_remove() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
NOCHECK_CALL

drivers/md/dm-ioctl.c dev_remove() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
MEM_ZERO 0 &md->ima.active_table
MEM_ZERO 0 &md->ima.inactive_table
NOCHECK_CALL

drivers/md/dm-ioctl.c dev_rename() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
CAPPED_DATA 0 md->io_barrier.srcu_ctrp 1
DATA_SOURCE 0 md r dm_hash_rename
NOCHECK_CALL

drivers/md/dm-ioctl.c dev_set_geometry() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 1-u64max
DATA_SOURCE 0 md r find_device
NOCHECK_CALL

drivers/md/dm-ioctl.c dev_status() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
CAPPED_DATA 0 md->io_barrier.srcu_ctrp 1
DATA_SOURCE 0 md r find_device
NOCHECK_CALL

drivers/md/dm-ioctl.c dev_wait() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
CAPPED_DATA 0 md->io_barrier.srcu_ctrp 1
DATA_SOURCE 0 md r find_device
NOCHECK_CALL

drivers/md/dm-ioctl.c dm_early_create() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
CAPPED_DATA 0 md->map->num_targets 1
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 md->queue->limits.max_hw_discard_sectors

drivers/md/dm-ioctl.c dm_early_create() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 md->queue->limits.max_hw_discard_sectors

drivers/md/dm-ioctl.c dm_early_create() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
PARAM_VALUE 0 md->holders.counter s32min-s32max
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 md->queue->limits.max_hw_discard_sectors

drivers/md/dm-ioctl.c dm_hash_insert() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
NOCHECK_CALL
LOCK2 global &_hash_lock

drivers/md/dm-ioctl.c dm_hash_insert() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
NOCHECK_CALL
LOCK2 global &_hash_lock

drivers/md/dm-ioctl.c dm_hash_remove_all() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 md->dax_dev->inode.i_mapping->host->i_bytes
LOCK2 global &_hash_lock

drivers/md/dm-ioctl.c dm_hash_remove_all() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
MEM_ZERO 0 &md->ima.active_table
MEM_ZERO 0 &md->ima.inactive_table
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 md->dax_dev->inode.i_mapping->host->i_bytes

drivers/md/dm-ioctl.c dm_hash_rename() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
NOCHECK_CALL
LOCK2 global &_hash_lock

drivers/md/dm-ioctl.c dm_hash_rename() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
NOCHECK_CALL
LOCK2 global &_hash_lock

drivers/md/dm-ioctl.c do_resume() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
NOCHECK_CALL

drivers/md/dm-ioctl.c do_resume() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 md->queue->limits.max_hw_discard_sectors

drivers/md/dm-ioctl.c do_resume() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 md->queue->limits.max_hw_discard_sectors

drivers/md/dm-ioctl.c do_suspend() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
CAPPED_DATA 0 md->io_barrier.srcu_ctrp 1
DATA_SOURCE 0 md r find_device
NOCHECK_CALL

drivers/md/dm-ioctl.c table_clear() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
NOCHECK_CALL

drivers/md/dm-ioctl.c table_deps() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
CAPPED_DATA 0 md->io_barrier.srcu_ctrp 1
DATA_SOURCE 0 md r find_device
NOCHECK_CALL

drivers/md/dm-ioctl.c table_load() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
DATA_SOURCE 0 md r find_device
NOCHECK_CALL

drivers/md/dm-ioctl.c table_load() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 1-u64max
DATA_SOURCE 0 md r find_device
NOCHECK_CALL

drivers/md/dm-ioctl.c table_status() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
CAPPED_DATA 0 md->io_barrier.srcu_ctrp 1
DATA_SOURCE 0 md r find_device
NOCHECK_CALL

drivers/md/dm-ioctl.c target_message() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 1-u64max
CAPPED_DATA 0 md->io_barrier.srcu_ctrp 1
DATA_SOURCE 0 md r find_device
NOCHECK_CALL

drivers/md/dm-thin.c thin_ctr() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
CAPPED_DATA 0 md 1
DATA_SOURCE 0 md r dm_get_md
NOCHECK_CALL
HALF_LOCKED2 &md->type_lock

drivers/md/dm-thin.c thin_ctr() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
CAPPED_DATA 0 md 1
DATA_SOURCE 0 md r dm_get_md
NOCHECK_CALL
LOCK2 global &dm_thin_pool_table.mutex
HALF_LOCKED2 &md->type_lock
TYPE_LOCK (struct dm_thin_pool_table)->mutex

drivers/md/dm.c dm_blk_close() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
BUF_SIZE 0 md s32min-(-2),1-s32max
BUF_SIZE 0 md s32min-(-2),1-s32max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 md unit_byte
LOCK2 &disk->open_mutex
LOCK2 global &_minor_lock
TYPE_LOCK (struct gendisk)->open_mutex

drivers/md/dm-sysfs.c dm_attr_show() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
DATA_SOURCE 0 md r dm_get_from_kobject
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &of->mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

drivers/md/dm-sysfs.c dm_attr_store() -> dm_put()

Type Parameter Key Value
PARAM_VALUE 0 md 4096-ptr_max
DATA_SOURCE 0 md r dm_get_from_kobject
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &of->mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex