Documented in 1 files:

Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

fs/nfs/dir.c nfs_add_or_obtain() -> nfs_save_change_attribute()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dentry->d_lockref.lock

fs/nfs/dir.c nfs_atomic_open() -> nfs_save_change_attribute()

Type Parameter Key Value
PARAM_VALUE 0 dir 4096-ptr_max
DATA_SOURCE 0 dir $0
HALF_LOCKED2 &dentry->d_lockref.lock
HALF_LOCKED2 &dir_inode->i_rwsem

fs/nfs/dir.c nfs_dentry_remove_handle_error() -> nfs_save_change_attribute()

Type Parameter Key Value
PARAM_VALUE 0 dir 4096-ptr_max
CAPPED_DATA 0 dir 1
DATA_SOURCE 0 dir $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 dir->i_size
HALF_LOCKED2 &dentry->d_inode->i_rwsem
HALF_LOCKED2 &dentry->d_sb->s_vfs_rename_mutex
HALF_LOCKED2 &dir->d_inode->i_rwsem
HALF_LOCKED2 &target->i_rwsem
HALF_LOCKED2 0 &dir->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/nfs/dir.c nfs_dentry_remove_handle_error() -> nfs_save_change_attribute()

Type Parameter Key Value
PARAM_VALUE 0 dir 4096-ptr_max
CAPPED_DATA 0 dir 1
DATA_SOURCE 0 dir $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 dir->i_size
HALF_LOCKED2 &dentry->d_inode->i_rwsem
HALF_LOCKED2 &dentry->d_sb->s_vfs_rename_mutex
HALF_LOCKED2 &dir->d_inode->i_rwsem
HALF_LOCKED2 &target->i_rwsem
HALF_LOCKED2 0 &dir->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/nfs/dir.c nfs_link() -> nfs_save_change_attribute()

Type Parameter Key Value
PARAM_VALUE 0 dir 4096-ptr_max
CAPPED_DATA 0 dir->i_sb 1
CAPPED_DATA 0 dir->i_sb->s_user_ns->gid_map.nr_extents 1
CAPPED_DATA 0 dir->i_sb->s_user_ns->uid_map.nr_extents 1
DATA_SOURCE 0 dir $1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dir->i_mode 0-u16max
USER_DATA 0 dir->i_size (-9223372036854775807)-(-4),0-s64max
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/nfs/dir.c nfs_lookup() -> nfs_save_change_attribute()

Type Parameter Key Value
PARAM_VALUE 0 dir 4096-ptr_max
DATA_SOURCE 0 dir $0
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dir->i_mode 0-u16max
USER_DATA 0 dir->i_size (-9223372036854775807)-(-4),0-s64max
NO_OVERFLOW_SIMPLE 0 dir->i_blkbits
HALF_LOCKED2 0 &dir->i_rwsem

fs/nfs/dir.c nfs_lookup_revalidate_delegated() -> nfs_save_change_attribute()

Type Parameter Key Value
DATA_SOURCE 0 dir $0
STR_LEN 0 dir (-1),1-24,26-27,29,31-34,63,99,115,254-255
STR_LEN 0 dir (-1),1-24,26-27,29,31-34,63,99,115,254-255
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 dir->i_size
HALF_LOCKED2 &dentry->d_lockref.lock
HALF_LOCKED2 0 &dir->i_rwsem

fs/nfs/dir.c nfs_lookup_revalidate_dentry() -> nfs_save_change_attribute()

Type Parameter Key Value
DATA_SOURCE 0 dir $0
STR_LEN 0 dir (-1),1-24,26-27,29,31-34,63,99,115,254-255
STR_LEN 0 dir (-1),1-24,26-27,29,31-34,63,99,115,254-255
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 dir->i_size
HALF_LOCKED2 &dentry->d_lockref.lock
HALF_LOCKED2 0 &dir->i_rwsem

fs/nfs/dir.c nfs_readdir_xdr_filler() -> nfs_save_change_attribute()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &dir_fp->readdir_lock
TYPE_LOCK (struct inode)->i_rwsem

fs/nfs/dir.c nfs_rename() -> nfs_save_change_attribute()

Type Parameter Key Value
PARAM_VALUE 0 dir 4096-ptr_max
CAPPED_DATA 0 dir 1
DATA_SOURCE 0 dir $3
RX_PATH
HALF_LOCKED2 &source->i_rwsem
HALF_LOCKED2 &target->i_rwsem

fs/nfs/dir.c nfs_symlink() -> nfs_save_change_attribute()

Type Parameter Key Value
PARAM_VALUE 0 dir 4096-ptr_max
CAPPED_DATA 0 dir->i_sb->s_user_ns->gid_map.nr_extents 1
CAPPED_DATA 0 dir->i_sb->s_user_ns->uid_map.nr_extents 1
DATA_SOURCE 0 dir $1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dir->i_mode 0-u16max
USER_DATA 0 dir->i_size (-9223372036854775807)-(-4),0-s64max

fs/nfs/dir.c nfs_verify_change_attribute() -> nfs_save_change_attribute()

Type Parameter Key Value
PARAM_VALUE 0 dir 1-u64max
DATA_SOURCE 0 dir $0
STR_LEN 0 dir (-1),1-24,26-27,29,31-34,63,99,115,254-255
STR_LEN 0 dir (-1),1-24,26-27,29,31-34,63,99,115,254-255
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 dir->i_blkbits
NO_OVERFLOW_SIMPLE 0 dir->i_size
HALF_LOCKED2 &dentry->d_lockref.lock
HALF_LOCKED2 0 &dir->i_rwsem

fs/nfs/nfs4proc.c _nfs4_open_and_get_state() -> nfs_save_change_attribute()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

fs/nfs/nfs4proc.c _nfs4_open_and_get_state() -> nfs_save_change_attribute()

Type Parameter Key Value
PARAM_VALUE 0 dir 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

fs/nfs/unlink.c nfs_sillyrename() -> nfs_save_change_attribute()

Type Parameter Key Value
PARAM_VALUE 0 dir 4096-ptr_max
CAPPED_DATA 0 dir 1
DATA_SOURCE 0 dir $0
RX_PATH
HALF_LOCKED2 &sdentry->d_lockref.lock
HALF_LOCKED2 &target->i_rwsem
HALF_LOCKED2 0 &dir->i_rwsem