Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

drivers/nvme/target/configfs.c nvmet_allowed_hosts_allow_link() -> nvmet_subsys_disc_changed()

Type Parameter Key Value
PARAM_VALUE 0 subsys 4096-ptr_max
PARAM_VALUE 0 subsys->allow_any_host 0
PARAM_VALUE 0 subsys->hosts.prev 4096-ptr_max
PARAM_VALUE 0 subsys->hosts.prev->next 4096-ptr_max
PARAM_VALUE 0 subsys->hosts.prev->next->next 4096-ptr_max
PARAM_VALUE 1 host 4096-ptr_max
CAPPED_DATA 0 &subsys->hosts 1
DATA_SOURCE 0 subsys r to_subsys
DATA_SOURCE 1 host r to_host
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &dir->i_rwsem
LOCK2 global &nvmet_config_sem
TYPE_LOCK (struct inode)->i_rwsem

drivers/nvme/target/configfs.c nvmet_allowed_hosts_drop_link() -> nvmet_subsys_disc_changed()

Type Parameter Key Value
PARAM_VALUE 0 subsys 4096-ptr_max
PARAM_VALUE 1 host 4096-ptr_max
CAPPED_DATA 0 &subsys->hosts 1
DATA_SOURCE 0 subsys r to_subsys
DATA_SOURCE 1 host r to_host
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &nvmet_config_sem
HALF_LOCKED2 &dentry->d_lockref.lock
HALF_LOCKED2 &dir->i_rwsem
HALF_LOCKED2 &target->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

drivers/nvme/target/configfs.c nvmet_subsys_attr_allow_any_host_store() -> nvmet_subsys_disc_changed()

Type Parameter Key Value
PARAM_VALUE 0 subsys 4096-ptr_max
PARAM_VALUE 1 host 0
CAPPED_DATA 0 &subsys->hosts 1
DATA_SOURCE 0 subsys r to_subsys
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &buffer->mutex
LOCK2 &frag->frag_sem
LOCK2 global &nvmet_config_sem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct configfs_buffer)->mutex
TYPE_LOCK (struct configfs_fragment)->frag_sem