Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/md/dm-cache-target.c cache_create() -> from_dblock()

Type Parameter Key Value
HALF_LOCKED2 &md->type_lock

drivers/md/dm-cache-target.c cache_create() -> from_dblock()

Type Parameter Key Value
HALF_LOCKED2 &md->type_lock

drivers/md/dm-cache-target.c cache_preresume() -> from_dblock()

Type Parameter Key Value
LOCK2 &md->suspend_lock
TYPE_LOCK (struct mapped_device)->suspend_lock

drivers/md/dm-cache-target.c clear_discard() -> from_dblock()

Type Parameter Key Value
DATA_SOURCE 0 b $1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &cache->lock
LOCK2 irq
TYPE_LOCK (struct cache)->lock

drivers/md/dm-cache-target.c is_discarded() -> from_dblock()

Type Parameter Key Value
PARAM_VALUE 0 b 0-u32max
CAPPED_DATA 0 b 1
CAPPED_DATA 0 b 1
DATA_SOURCE 0 b $1
PREEMPT_ADD <- disables preempt
LOCK2 &cache->background_work_lock
LOCK2 &cache->lock
LOCK2 &md->suspend_lock
LOCK2 irq
HALF_LOCKED2 &md->io_barrier
TYPE_LOCK (struct cache)->background_work_lock
TYPE_LOCK (struct cache)->lock
TYPE_LOCK (struct mapped_device)->suspend_lock

drivers/md/dm-cache-target.c is_discarded_oblock() -> from_dblock()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &cache->lock
LOCK2 irq
TYPE_LOCK (struct cache)->lock

drivers/md/dm-cache-target.c load_discard() -> from_dblock()

Type Parameter Key Value
PARAM_VALUE 0 b 0
DATA_SOURCE 0 b $2
LOCK2 &cmd->root_lock
HALF_LOCKED2 &md->suspend_lock
TYPE_LOCK (struct dm_cache_metadata)->root_lock
TYPE_LOCK (struct mapped_device)->suspend_lock

drivers/md/dm-cache-target.c load_discard() -> from_dblock()

Type Parameter Key Value
PARAM_VALUE 0 b 0
DATA_SOURCE 0 b $2
LOCK2 &cmd->root_lock
HALF_LOCKED2 &md->suspend_lock
TYPE_LOCK (struct dm_cache_metadata)->root_lock
TYPE_LOCK (struct mapped_device)->suspend_lock

drivers/md/dm-cache-target.c process_discard_bio() -> from_dblock()

Type Parameter Key Value
HALF_LOCKED2 &pool->lock

drivers/md/dm-cache-target.c set_discard() -> from_dblock()

Type Parameter Key Value
DATA_SOURCE 0 b $1
HALF_LOCKED2 &md->suspend_lock

drivers/md/dm-cache-target.c set_discard() -> from_dblock()

Type Parameter Key Value
HALF_LOCKED2 &md->suspend_lock

drivers/md/dm-cache-target.c set_discard() -> from_dblock()

Type Parameter Key Value
PARAM_VALUE 0 b 0-18446744073709551614
DATA_SOURCE 0 b $1
PREEMPT_ADD <- disables preempt
LOCK2 &cache->lock
LOCK2 irq
HALF_LOCKED2 &md->suspend_lock
TYPE_LOCK (struct cache)->lock

drivers/md/dm-cache-target.c set_discard_range() -> from_dblock()

Type Parameter Key Value
LOCK2 &md->suspend_lock
HALF_LOCKED2 &cmd->root_lock
TYPE_LOCK (struct mapped_device)->suspend_lock

drivers/md/dm-cache-target.c set_discard_range() -> from_dblock()

Type Parameter Key Value
PARAM_VALUE 0 b 0-18446744073709551614
LOCK2 &md->suspend_lock
HALF_LOCKED2 &cmd->root_lock
TYPE_LOCK (struct mapped_device)->suspend_lock

drivers/md/dm-cache-target.c write_discard_bitset() -> from_dblock()

Type Parameter Key Value
LOCK2 &cache->background_work_lock
LOCK2 &md->suspend_lock
HALF_LOCKED2 &md->io_barrier
TYPE_LOCK (struct cache)->background_work_lock
TYPE_LOCK (struct mapped_device)->suspend_lock

drivers/md/dm-cache-target.c write_discard_bitset() -> from_dblock()

Type Parameter Key Value
PARAM_VALUE 0 b 1-u64max
LOCK2 &cache->background_work_lock
LOCK2 &md->suspend_lock
HALF_LOCKED2 &md->io_barrier
TYPE_LOCK (struct cache)->background_work_lock
TYPE_LOCK (struct mapped_device)->suspend_lock

drivers/md/dm-cache-metadata.c __clear_discard() -> from_dblock()

Type Parameter Key Value
DATA_SOURCE 0 b $1

drivers/md/dm-cache-metadata.c __commit_transaction() -> from_dblock()

Type Parameter Key Value
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 __load_discards() -> from_dblock()

Type Parameter Key Value
LOCK2 &cmd->root_lock
LOCK2 &md->suspend_lock
TYPE_LOCK (struct dm_cache_metadata)->root_lock
TYPE_LOCK (struct mapped_device)->suspend_lock

drivers/md/dm-cache-metadata.c __load_discards() -> from_dblock()

Type Parameter Key Value
PARAM_VALUE 0 b 1-u64max
LOCK2 &cmd->root_lock
LOCK2 &md->suspend_lock
TYPE_LOCK (struct dm_cache_metadata)->root_lock
TYPE_LOCK (struct mapped_device)->suspend_lock

drivers/md/dm-cache-metadata.c __load_discards() -> from_dblock()

Type Parameter Key Value
PARAM_VALUE 0 b 1-u64max
LOCK2 &cmd->root_lock
LOCK2 &md->suspend_lock
TYPE_LOCK (struct dm_cache_metadata)->root_lock
TYPE_LOCK (struct mapped_device)->suspend_lock

drivers/md/dm-cache-metadata.c __load_discards() -> from_dblock()

Type Parameter Key Value
PARAM_VALUE 0 b 1-u64max
LOCK2 &cmd->root_lock
LOCK2 &md->suspend_lock
TYPE_LOCK (struct dm_cache_metadata)->root_lock
TYPE_LOCK (struct mapped_device)->suspend_lock

drivers/md/dm-cache-metadata.c __load_discards() -> from_dblock()

Type Parameter Key Value
PARAM_VALUE 0 b 1-u64max
LOCK2 &cmd->root_lock
LOCK2 &md->suspend_lock
TYPE_LOCK (struct dm_cache_metadata)->root_lock
TYPE_LOCK (struct mapped_device)->suspend_lock

drivers/md/dm-cache-metadata.c __set_discard() -> from_dblock()

Type Parameter Key Value
DATA_SOURCE 0 b $1

drivers/md/dm-cache-metadata.c __write_initial_superblock() -> from_dblock()

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

drivers/md/dm-cache-metadata.c dm_cache_discard_bitset_resize() -> from_dblock()

Type Parameter Key Value
LOCK2 &cache->background_work_lock
LOCK2 &cmd->root_lock
LOCK2 &md->suspend_lock
HALF_LOCKED2 &md->io_barrier
TYPE_LOCK (struct cache)->background_work_lock
TYPE_LOCK (struct dm_cache_metadata)->root_lock
TYPE_LOCK (struct mapped_device)->suspend_lock

drivers/md/dm-cache-metadata.c dm_cache_discard_bitset_resize() -> from_dblock()

Type Parameter Key Value
DATA_SOURCE 0 b $2
LOCK2 &cache->background_work_lock
LOCK2 &cmd->root_lock
LOCK2 &md->suspend_lock
HALF_LOCKED2 &md->io_barrier
TYPE_LOCK (struct cache)->background_work_lock
TYPE_LOCK (struct dm_cache_metadata)->root_lock
TYPE_LOCK (struct mapped_device)->suspend_lock