Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

fs/ceph/dir.c __ceph_dentry_dir_lease_touch() -> __dentry_lease_is_valid()

Type Parameter Key Value
PARAM_VALUE 0 di 4096-ptr_max
BUF_SIZE 0 di 1-s32max
BUF_SIZE 0 di 1-s32max
CAPPED_DATA 0 &di->lease_list 1
DATA_SOURCE 0 di $0
PARAM_COMPARE 0 &di->lease_list != $0->lease_list.next
BIT_INFO 0 di->flags 0x2,0xffffffffffffffff
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dentry->d_lockref.lock
HALF_LOCKED2 &inode->i_rwsem
TYPE_LOCK (struct lockref)->lock

fs/ceph/dir.c __dentry_lease_check() -> __dentry_lease_is_valid()

Type Parameter Key Value
BUF_SIZE 0 di 1-s32max
BUF_SIZE 0 di 1-s32max
LOCK2 &dentry->d_lockref.lock
LOCK2 &mdsc->dentry_list_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct ceph_mds_client)->dentry_list_lock
TYPE_LOCK (struct lockref)->lock

fs/ceph/dir.c ceph_d_delete() -> __dentry_lease_is_valid()

Type Parameter Key Value
PARAM_VALUE 0 di 1-u64max
BUF_SIZE 0 di 1-s32max
BUF_SIZE 0 di 1-s32max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dentry->d_lockref.lock
HALF_LOCKED2 global &mount_lock.lock
TYPE_LOCK (struct lockref)->lock

fs/ceph/dir.c dentry_lease_is_valid() -> __dentry_lease_is_valid()

Type Parameter Key Value
PARAM_VALUE 0 di 1-u64max
BUF_SIZE 0 di 1-s32max
BUF_SIZE 0 di 1-s32max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dentry->d_lockref.lock
TYPE_LOCK (struct lockref)->lock