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 |