Documented in 1 files:

Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 20 files:

Smatch caller information:

fs/xattr.c xattr_permission() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 1 inode 4096-ptr_max
PARAM_VALUE 1 inode->i_mode 512-u16max
DATA_SOURCE 0 idmap $0
DATA_SOURCE 1 inode $1
STR_LEN 0 idmap (-5)-1010101
STR_LEN 0 idmap (-5)-1010101
BIT_INFO 1 inode->i_mode 0x200,0xffff
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 inode->i_mode 512-u16max
USER_DATA 1 inode->i_size (-9223372036854775807)-(-4),0-s64max

mm/madvise.c file_owner_or_capable() -> inode_owner_or_capable()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

fs/attr.c may_setattr() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 1 inode 4096-ptr_max
DATA_SOURCE 0 idmap $0
DATA_SOURCE 1 inode $1
BIT_INFO 1 inode->i_flags 0x0,0xfffffff7
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 inode->i_mode 0-u16max
USER_DATA 1 inode->i_size (-9223372036854775807)-(-4),0-s64max
HALF_LOCKED2 &dentry->d_inode->i_rwsem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock

fs/attr.c setattr_prepare() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 1 inode->i_sb 4096-ptr_max
DATA_SOURCE 0 idmap $0
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 inode->i_blocks 0-36028797018963960[c]
USER_DATA 1 inode->i_mode 0-u16max
USER_DATA 1 inode->i_size (-9223372036854775807)-(-2),0-s64max
HALF_LOCKED2 &root->kernfs_iattr_rwsem
HALF_LOCKED2 &sbi->hpfs_mutex

fs/attr.c setattr_prepare() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 1 inode->i_sb 4096-ptr_max
DATA_SOURCE 0 idmap $0
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 inode->i_blocks 0-36028797018963960[c]
USER_DATA 1 inode->i_mode 0-u16max
USER_DATA 1 inode->i_size (-9223372036854775807)-(-2),0-s64max
HALF_LOCKED2 &root->kernfs_iattr_rwsem
HALF_LOCKED2 &sbi->hpfs_mutex

fs/crypto/policy.c fscrypt_ioctl_set_policy() -> inode_owner_or_capable()

Type Parameter Key Value

fs/file_attr.c vfs_fileattr_set() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 1 inode 4096-ptr_max
PARAM_VALUE 1 inode->i_op 4096-ptr_max
PARAM_VALUE 1 inode->i_op->fileattr_set 4096-ptr_max
DATA_SOURCE 0 idmap $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock

fs/namei.c may_linkat() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 1 inode 4096-ptr_max
PARAM_VALUE 1 inode->i_sb 4096-ptr_max
DATA_SOURCE 0 idmap $0
RX_PATH
TASK_NOT_RUNNING

fs/namei.c may_open() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 1 inode 4096-ptr_max
DATA_SOURCE 0 idmap $0
BIT_INFO 1 inode->i_flags 0x0,0xffffffff
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

fs/overlayfs/file.c ovl_open_realfile() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 1 inode 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

fs/overlayfs/inode.c ovl_set_acl() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 1 inode 4096-ptr_max
DATA_SOURCE 0 idmap $0
STR_LEN 0 idmap (-1),23-24
STR_LEN 0 idmap (-1),23-24
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 inode->i_mode 0-u16max
USER_DATA 1 inode->i_size (-9223372036854775807)-(-4),0-s64max
HALF_LOCKED2 &dentry->d_lockref.lock

fs/overlayfs/util.c ovl_path_open() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 1 inode 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

mm/filemap.c file_owner_or_capable() -> inode_owner_or_capable()

Type Parameter Key Value

fs/ceph/ioctl.c ceph_ioctl_set_layout() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 1 inode 4096-ptr_max
PARAM_VALUE 1 inode->i_sb 4096-ptr_max

fs/ceph/ioctl.c ceph_ioctl_set_layout_policy() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 1 inode 4096-ptr_max
PARAM_VALUE 1 inode->i_sb 4096-ptr_max

fs/posix_acl.c set_posix_acl() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 1 inode 4096-ptr_max
PARAM_VALUE 1 inode->i_op 4096-ptr_max
PARAM_VALUE 1 inode->i_op->set_acl 4096-ptr_max
PARAM_VALUE 1 inode->i_sb 4096-ptr_max
DATA_SOURCE 0 idmap $0
STR_LEN 0 idmap (-1),23-24
STR_LEN 0 idmap (-1),23-24
BIT_INFO 1 inode->i_sb->s_flags 0x10000,0xffffffffffffffff
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 inode->i_mode 0-u16max
USER_DATA 1 inode->i_size (-9223372036854775807)-(-4),0-s64max
HALF_LOCKED2 &inode->i_rwsem

fs/f2fs/xattr.c f2fs_xattr_advise_set() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 1 inode 4096-ptr_max
PARAM_VALUE 1 inode->i_opflags 8-u16max
PARAM_VALUE 1 inode->i_rwsem.first_waiter->type 0-1
PARAM_VALUE 1 inode->i_sb 4096-ptr_max
PARAM_VALUE 1 inode->i_sb->s_xattr 1-u64max
DATA_SOURCE 0 idmap $1
DATA_SOURCE 1 inode $3
STR_LEN 0 idmap (-1),12
STR_LEN 0 idmap (-1),12
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 inode->i_mode 0-u16max
USER_DATA 1 inode->i_size (-9223372036854775807)-(-4),0-s64max
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &unused->d_inode->i_rwsem
HALF_LOCKED2 1 &inode->i_rwsem

fs/ext2/ioctl.c ext2_ioctl() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 0 idmap 1531479832127729664

fs/ext2/ioctl.c ext2_ioctl() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 0 idmap 1531479832127729664
PARAM_VALUE 1 inode 4096-ptr_max
PARAM_VALUE 1 inode->i_sb 4096-ptr_max

mm/mincore.c file_owner_or_capable() -> inode_owner_or_capable()

Type Parameter Key Value

fs/btrfs/ioctl.c __btrfs_ioctl_snap_create() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 1 inode 4096-ptr_max
CAPPED_DATA 1 inode->i_sb 1
DATA_SOURCE 0 idmap r file_mnt_idmap
DATA_SOURCE 1 inode r file_inode

fs/btrfs/ioctl.c _btrfs_ioctl_set_received_subvol() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 1 inode 4096-ptr_max
PARAM_VALUE 1 inode->i_sb 4096-ptr_max
CAPPED_DATA 1 inode->i_sb->s_time_max 1
DATA_SOURCE 0 idmap $1
PARAM_COMPARE 1 inode->i_sb->s_time_max >= $1->i_sb->s_time_min

fs/btrfs/ioctl.c btrfs_ioctl_subvol_setflags() -> inode_owner_or_capable()

Type Parameter Key Value

fs/f2fs/file.c f2fs_ioc_abort_atomic_write() -> inode_owner_or_capable()

Type Parameter Key Value
DATA_SOURCE 0 idmap r file_mnt_idmap

fs/f2fs/file.c f2fs_ioc_commit_atomic_write() -> inode_owner_or_capable()

Type Parameter Key Value
DATA_SOURCE 0 idmap r file_mnt_idmap

fs/f2fs/file.c f2fs_ioc_start_atomic_write() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 1 inode 4096-ptr_max
PARAM_VALUE 1 inode->i_sb 4096-ptr_max
DATA_SOURCE 0 idmap r file_mnt_idmap

fs/ext4/ioctl.c __ext4_ioctl() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 1 inode 4096-ptr_max
DATA_SOURCE 0 idmap r file_mnt_idmap

fs/ext4/ioctl.c __ext4_ioctl() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 1 inode 4096-ptr_max
DATA_SOURCE 0 idmap r file_mnt_idmap

fs/ext4/ioctl.c swap_inode_boot_loader() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 1 inode 4096-ptr_max
PARAM_VALUE 1 inode->i_nlink 1
PARAM_VALUE 1 inode->i_rwsem.dep_map->name 0-255
PARAM_VALUE 1 inode->i_rwsem.first_waiter->list.next 2624917664208203776
PARAM_VALUE 1 inode->i_rwsem.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 1 inode->i_rwsem.first_waiter->type 0-1
PARAM_VALUE 1 inode->i_rwsem.osq.tail.counter 0-s32max
PARAM_VALUE 1 inode->i_sb 4096-ptr_max
DATA_SOURCE 0 idmap $1
DATA_SOURCE 1 inode $2
BIT_INFO 1 inode->i_flags 0x0,0xffffbef3

security/selinux/hooks.c selinux_inode_setxattr() -> inode_owner_or_capable()

Type Parameter Key Value
DATA_SOURCE 0 idmap $0

security/selinux/hooks.c selinux_inode_setxattr() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 1 inode 4096-ptr_max
PARAM_VALUE 1 inode->i_sb 4096-ptr_max
DATA_SOURCE 0 idmap $0

fs/9p/acl.c v9fs_iop_set_acl() -> inode_owner_or_capable()

Type Parameter Key Value
PARAM_VALUE 0 idmap 1531479832127729664
PARAM_VALUE 1 inode 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 inode->i_mode 0-u16max
USER_DATA 1 inode->i_size (-9223372036854775807)-(-4),0-s64max
HALF_LOCKED2 &dentry->d_lockref.lock

fs/fcntl.c fcntl_set_rw_hint() -> inode_owner_or_capable()

Type Parameter Key Value

fs/fcntl.c setfl() -> inode_owner_or_capable()

Type Parameter Key Value