Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

fs/crypto/keysetup.c fscrypt_setup_v2_file_key() -> fscrypt_derive_dirhash_key()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
PARAM_VALUE 0 ci->ci_inode 4096-ptr_max
PARAM_VALUE 0 ci->ci_inode->i_sb 4096-ptr_max
PARAM_VALUE 0 ci->ci_inode->i_sb->s_cop->get_dummy_policy 0,5548184023414632448,6265693363421687808,7944682147525111808
PARAM_VALUE 0 ci->ci_inode->i_sb->s_master_keys 1-u64max
PARAM_VALUE 0 ci->ci_mode 4096-ptr_max
PARAM_VALUE 0 ci->ci_mode->blk_crypto_mode 0-4
PARAM_VALUE 0 ci->ci_mode->cipher_str 1-u64max
PARAM_VALUE 0 ci->ci_mode->ivsize 16,32
PARAM_VALUE 0 ci->ci_mode->keysize 16,32,64
PARAM_VALUE 0 ci->ci_mode->security_strength 16,32
PARAM_VALUE 0 ci->ci_owns_key 1
PARAM_VALUE 0 ci->ci_policy.version 2
PARAM_VALUE 1 mk 4096-ptr_max
PARAM_VALUE 1 mk->mk_present 1
PARAM_VALUE 1 mk->mk_secret.size 16-u32max
PARAM_VALUE 1 mk->mk_sem.dep_map->name 0-255
PARAM_VALUE 1 mk->mk_sem.first_waiter->list.next 2212933610777083904
PARAM_VALUE 1 mk->mk_sem.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 1 mk->mk_sem.first_waiter->type 0-1
PARAM_VALUE 1 mk->mk_sem.wait_lock.dep_map->name 0-255
PARAM_VALUE 1 mk->mk_sem.wait_lock.owner (-1)
PARAM_VALUE 1 mk->mk_sem.wait_lock.owner_cpu u32max
PARAM_VALUE 1 mk->mk_spec.type 1-2
PARAM_VALUE 1 mk->mk_struct_refs.refs.counter (-1073741824),0-s32max
BUF_SIZE 0 ci->ci_inode (-1),1-s32max
CAPPED_DATA 0 ci->ci_mode->ivsize 1
CAPPED_DATA 0 ci->ci_mode->keysize 1
DATA_SOURCE 0 ci $0
DATA_SOURCE 1 mk $1
STR_LEN 0 ci->ci_inode (-1)-1010101
STR_LEN 0 ci->ci_inode->i_sb (-1)
NOSPEC 0 ci->ci_inode->i_bytes
NOSPEC 0 ci->ci_inode->i_ino
NOSPEC 0 ci->ci_inode->i_size
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 ci->ci_hashed_ino 0-u32max[c]
USER_DATA 0 ci->ci_inode->__i_nlink 1-u32max
USER_DATA 0 ci->ci_inode->i_blocks 0-18014398509481983,18428729675200069632-u64max
USER_DATA 0 ci->ci_inode->i_bytes 0-511[c]
USER_DATA 0 ci->ci_inode->i_ino 0-u64max
USER_DATA 0 ci->ci_inode->i_mode 0-u16max
USER_DATA 0 ci->ci_inode->i_rdev 0-u32max[c]
USER_DATA 0 ci->ci_inode->i_size (-9223372036854775807)-(-4),0-s64max
NO_OVERFLOW_SIMPLE 0 ci->ci_data_unit_bits
NO_OVERFLOW_SIMPLE 0 ci->ci_inode->i_blkbits
NO_OVERFLOW_SIMPLE 0 ci->ci_inode->i_linklen
LOCK2 1 &mk->mk_sem
TYPE_LOCK (struct fscrypt_master_key)->mk_sem

fs/crypto/hooks.c fscrypt_prepare_setflags() -> fscrypt_derive_dirhash_key()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
PARAM_VALUE 0 ci->ci_master_key 4096-ptr_max
PARAM_VALUE 0 ci->ci_master_key->mk_present 1
PARAM_VALUE 0 ci->ci_master_key->mk_sem.dep_map->name 0-255
PARAM_VALUE 0 ci->ci_master_key->mk_sem.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 ci->ci_master_key->mk_sem.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 0 ci->ci_master_key->mk_sem.first_waiter->type 0-1
PARAM_VALUE 0 ci->ci_master_key->mk_sem.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 ci->ci_master_key->mk_sem.wait_lock.owner (-1)
PARAM_VALUE 0 ci->ci_master_key->mk_sem.wait_lock.owner_cpu u32max
PARAM_VALUE 0 ci->ci_policy.version 2
PARAM_VALUE 1 mk 4096-ptr_max
PARAM_VALUE 1 mk->mk_present 1
PARAM_VALUE 1 mk->mk_sem.dep_map->name 0-255
PARAM_VALUE 1 mk->mk_sem.first_waiter->list.next 2212933610777083904
PARAM_VALUE 1 mk->mk_sem.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 1 mk->mk_sem.first_waiter->type 0-1
PARAM_VALUE 1 mk->mk_sem.wait_lock.dep_map->name 0-255
PARAM_VALUE 1 mk->mk_sem.wait_lock.owner (-1)
PARAM_VALUE 1 mk->mk_sem.wait_lock.owner_cpu u32max
CAPPED_DATA 1 &mk->mk_sem 1
DATA_SOURCE 0 ci r fscrypt_get_inode_info_raw
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &inode->i_rwsem
LOCK2 1 &mk->mk_sem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct fscrypt_master_key)->mk_sem
TYPE_LOCK (struct inode)->i_rwsem