Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 6 files:

Smatch caller information:

drivers/md/dm-thin-metadata.c __begin_transaction() -> dm_bm_unlock()

Type Parameter Key Value
PARAM_VALUE 0 b 0,4096-ptr_max
PARAM_VALUE 0 b->read_error 0
NOCHECK_CALL
HALF_LOCKED2 &pmd->root_lock
HALF_LOCKED2 global &dm_thin_pool_table.mutex

drivers/md/dm-thin-metadata.c __open_metadata() -> dm_bm_unlock()

Type Parameter Key Value
PARAM_VALUE 0 b 0,4096-ptr_max
PARAM_VALUE 0 b->read_error 0
NOCHECK_CALL
HALF_LOCKED2 &pmd->root_lock
HALF_LOCKED2 global &dm_thin_pool_table.mutex

drivers/md/dm-thin-metadata.c __open_metadata() -> dm_bm_unlock()

Type Parameter Key Value
PARAM_VALUE 0 b 0,4096-ptr_max
PARAM_VALUE 0 b->read_error 0
NOCHECK_CALL
HALF_LOCKED2 &pmd->root_lock
HALF_LOCKED2 global &dm_thin_pool_table.mutex

drivers/md/dm-thin-metadata.c __superblock_all_zeroes() -> dm_bm_unlock()

Type Parameter Key Value
PARAM_VALUE 0 b 0,4096-ptr_max
PARAM_VALUE 0 b->read_error 0
NOCHECK_CALL
HALF_LOCKED2 &pmd->root_lock
HALF_LOCKED2 global &dm_thin_pool_table.mutex

drivers/md/dm-thin-metadata.c dm_pool_metadata_set_needs_check() -> dm_bm_unlock()

Type Parameter Key Value
PARAM_VALUE 0 b->read_error 0
NOCHECK_CALL
LOCK2 &pmd->root_lock
HALF_LOCKED2 &md->suspend_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct dm_pool_metadata)->root_lock

drivers/md/dm-era-target.c open_metadata() -> dm_bm_unlock()

Type Parameter Key Value
PARAM_VALUE 0 b 0,4096-ptr_max
PARAM_VALUE 0 b->read_error 0
NOCHECK_CALL
HALF_LOCKED2 &md->type_lock

drivers/md/dm-era-target.c open_metadata() -> dm_bm_unlock()

Type Parameter Key Value
PARAM_VALUE 0 b 0,4096-ptr_max
PARAM_VALUE 0 b->read_error 0
NOCHECK_CALL
HALF_LOCKED2 &md->type_lock

drivers/md/dm-era-target.c superblock_all_zeroes() -> dm_bm_unlock()

Type Parameter Key Value
PARAM_VALUE 0 b 0,4096-ptr_max
PARAM_VALUE 0 b->read_error 0
NOCHECK_CALL
HALF_LOCKED2 &md->type_lock

drivers/md/persistent-data/dm-transaction-manager.c __shadow_block() -> dm_bm_unlock()

Type Parameter Key Value
PARAM_VALUE 0 b 0,4096-ptr_max
PARAM_VALUE 0 b->read_error 0
NOCHECK_CALL
HALF_LOCKED2 &md->io_barrier
HALF_LOCKED2 &pmd->root_lock
HALF_LOCKED2 &pool->lock

drivers/md/persistent-data/dm-transaction-manager.c __shadow_block() -> dm_bm_unlock()

Type Parameter Key Value
PARAM_VALUE 0 b 0,4096-ptr_max
PARAM_VALUE 0 b->read_error 0
NOCHECK_CALL
HALF_LOCKED2 &md->io_barrier
HALF_LOCKED2 &pmd->root_lock
HALF_LOCKED2 &pool->lock

drivers/md/persistent-data/dm-transaction-manager.c dm_tm_commit() -> dm_bm_unlock()

Type Parameter Key Value
PARAM_VALUE 0 b->read_error 0
DATA_SOURCE 0 b $1
NOCHECK_CALL
HALF_LOCKED2 &clone->commit_lock
HALF_LOCKED2 &cmd->lock
HALF_LOCKED2 &cmd->root_lock
HALF_LOCKED2 &pmd->root_lock
HALF_LOCKED2 global &dm_thin_pool_table.mutex

drivers/md/persistent-data/dm-transaction-manager.c dm_tm_unlock() -> dm_bm_unlock()

Type Parameter Key Value
DATA_SOURCE 0 b $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &md->io_barrier
HALF_LOCKED2 &pmd->root_lock

drivers/md/dm-cache-metadata.c __begin_transaction() -> dm_bm_unlock()

Type Parameter Key Value
PARAM_VALUE 0 b 0,4096-ptr_max
PARAM_VALUE 0 b->read_error 0
NOCHECK_CALL
LOCK2 &cmd->root_lock
HALF_LOCKED2 &cache->background_work_lock
HALF_LOCKED2 &md->io_barrier
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct dm_cache_metadata)->root_lock

drivers/md/dm-cache-metadata.c __begin_transaction_flags() -> dm_bm_unlock()

Type Parameter Key Value
PARAM_VALUE 0 b->read_error 0
NOCHECK_CALL
HALF_LOCKED2 &md->type_lock

drivers/md/dm-cache-metadata.c __open_metadata() -> dm_bm_unlock()

Type Parameter Key Value
PARAM_VALUE 0 b 0,4096-ptr_max
PARAM_VALUE 0 b->read_error 0
NOCHECK_CALL
HALF_LOCKED2 &cmd->root_lock

drivers/md/dm-cache-metadata.c __open_metadata() -> dm_bm_unlock()

Type Parameter Key Value
PARAM_VALUE 0 b 0,4096-ptr_max
PARAM_VALUE 0 b->read_error 0
NOCHECK_CALL
HALF_LOCKED2 &cmd->root_lock

drivers/md/dm-cache-metadata.c __superblock_all_zeroes() -> dm_bm_unlock()

Type Parameter Key Value
PARAM_VALUE 0 b 0,4096-ptr_max
PARAM_VALUE 0 b->read_error 0
NOCHECK_CALL
HALF_LOCKED2 &cmd->root_lock

drivers/md/dm-cache-metadata.c dm_cache_metadata_set_needs_check() -> dm_bm_unlock()

Type Parameter Key Value
PARAM_VALUE 0 b->read_error 0
NOCHECK_CALL
LOCK2 &cmd->root_lock
HALF_LOCKED2 &cache->background_work_lock
HALF_LOCKED2 &md->suspend_lock
TYPE_LOCK (struct dm_cache_metadata)->root_lock

drivers/md/dm-clone-metadata.c __open_metadata() -> dm_bm_unlock()

Type Parameter Key Value
PARAM_VALUE 0 b 0,4096-ptr_max
PARAM_VALUE 0 b->read_error 0
NOCHECK_CALL
HALF_LOCKED2 &clone->commit_lock
HALF_LOCKED2 &cmd->lock

drivers/md/dm-clone-metadata.c __superblock_all_zeroes() -> dm_bm_unlock()

Type Parameter Key Value
PARAM_VALUE 0 b 0,4096-ptr_max
PARAM_VALUE 0 b->read_error 0
NOCHECK_CALL
HALF_LOCKED2 &clone->commit_lock
HALF_LOCKED2 &cmd->lock