Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 4 files:

Smatch caller information:

fs/fuse/dax.c fuse_dax_direct_write() -> fuse_write_update_attr()

Type Parameter Key Value
PARAM_VALUE 0 inode 4096-ptr_max
CAPPED_DATA 1 pos 1
CAPPED_DATA 1 pos 1
DATA_SOURCE 2 written r fuse_direct_io
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 pos s64min-(-2),0-9223372036854775806[c]
UNITS 1 pos unit_byte
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/fuse/passthrough.c fuse_passthrough_end_write() -> fuse_write_update_attr()

Type Parameter Key Value
DATA_SOURCE 2 written $1
NOSPEC 2 written
NOSPEC 2 written
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 2 written 2-4294967295[c]
USER_DATA 1 pos s64min-(-2),0-s64max
USER_DATA 2 written s64min-s64max
UNITS 1 pos unit_byte
HALF_LOCKED2 &inode->i_rwsem

fs/fuse/notify.c fuse_notify_store() -> fuse_write_update_attr()

Type Parameter Key Value
PARAM_VALUE 0 inode 4096-ptr_max
PARAM_VALUE 0 inode->i_hash.pprev 1-u64max
PARAM_VALUE 0 inode->i_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 inode->i_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 inode->i_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 inode->i_op->get_acl 0,4096-ptr_max
PARAM_VALUE 0 inode->i_wb->dwork.wq->dfl_pwq 0-s64max
PARAM_VALUE 0 inode->i_wb->dwork.wq->saved_max_active s32min-s32max
PARAM_VALUE 0 inode->i_wb->dwork.wq->saved_min_active s32min-s32max
PARAM_VALUE 1 pos (-9223372036854775807)-s64max
CAPPED_DATA 1 pos 1
CAPPED_DATA 1 pos 1
CAPPED_DATA 2 written 1
DATA_SOURCE 0 inode r fuse_ilookup
PARAM_COMPARE 1 pos >= $2
PARAM_COMPARE 1 pos >= $2
PARAM_COMPARE 2 written <= $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 inode->i_bytes
UNITS 1 pos unit_byte
UNITS 2 written unit_byte
LOCK2 &fc->killsb
TYPE_LOCK (struct fuse_conn)->killsb

fs/fuse/file.c __fuse_copy_file_range() -> fuse_write_update_attr()

Type Parameter Key Value
PARAM_VALUE 0 inode 4096-ptr_max
PARAM_VALUE 0 inode->i_mapping 4096-ptr_max
PARAM_VALUE 0 inode->i_rwsem.count.counter s64min-(-1),1-s64max
PARAM_VALUE 0 inode->i_rwsem.dep_map->name 0-255
PARAM_VALUE 0 inode->i_rwsem.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 inode->i_rwsem.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 inode->i_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 inode->i_rwsem.osq.tail.counter 0-s32max
PARAM_VALUE 1 pos 0-2000000000
PARAM_VALUE 2 written 0-1000000000
CAPPED_DATA 1 pos 1
CAPPED_DATA 2 written 1
RX_PATH
NOCHECK_CALL
USER_DATA 1 pos 1-2000000000[c]
UNITS 1 pos unit_byte
UNITS 2 written unit_byte
LOCK2 0 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/fuse/file.c fuse_direct_IO() -> fuse_write_update_attr()

Type Parameter Key Value
PARAM_VALUE 0 inode 4096-ptr_max
PARAM_VALUE 0 inode->i_sb 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 pos s64min-(-2),0-s64max
USER_DATA 2 written s32min-(-1),1-s32max
UNITS 1 pos unit_byte
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &iocb->ki_filp->f_inode->i_rwsem
HALF_LOCKED2 &pool->lock

fs/fuse/file.c fuse_direct_write_iter() -> fuse_write_update_attr()

Type Parameter Key Value
PARAM_VALUE 0 inode 4096-ptr_max
PARAM_VALUE 0 inode->i_rwsem.dep_map->name 0-255
PARAM_VALUE 0 inode->i_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 inode->i_rwsem.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 inode->i_rwsem.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 0 inode->i_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 inode->i_rwsem.osq.tail.counter 0-s32max
DATA_SOURCE 2 written r fuse_direct_io
NOSPEC 2 written
NOSPEC 2 written
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 pos s64min-(-2),0-s64max
USER_DATA 2 written 1-s64max
UNITS 1 pos unit_byte
LOCK2 &iocb->ki_filp->f_inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/fuse/file.c fuse_file_fallocate() -> fuse_write_update_attr()

Type Parameter Key Value
PARAM_VALUE 0 inode 4096-ptr_max
PARAM_VALUE 0 inode->i_flags 0,4096-u32max
PARAM_VALUE 0 inode->i_io_list.next 4096-ptr_max
PARAM_VALUE 0 inode->i_io_list.next->prev 4096-ptr_max
PARAM_VALUE 0 inode->i_io_list.prev 4096-ptr_max
PARAM_VALUE 0 inode->i_io_list.prev->next 4096-ptr_max
PARAM_VALUE 0 inode->i_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 inode->i_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 inode->i_mapping->invalidate_lock.first_waiter->type 0-1
PARAM_VALUE 0 inode->i_rwsem.dep_map->name 0-255
PARAM_VALUE 0 inode->i_rwsem.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 inode->i_rwsem.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 inode->i_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 inode->i_rwsem.osq.tail.counter 0-s32max
PARAM_VALUE 0 inode->i_sb->s_cop->inode_info_offs 1632,1720,1808,2632,2648
PARAM_VALUE 0 inode->i_sb->s_export_op->fh_to_parent 0,5297,148606482432692224,436469935444291584,467281172929331200
PARAM_VALUE 0 inode->i_sb->s_export_op->get_parent 0,8931,264940071972966400,291591359766798336,565128213429456896
PARAM_VALUE 0 inode->i_wb->dwork->timer->entry.pprev 4096-ptr_max
PARAM_VALUE 0 inode->i_wb->dwork.work.entry.next->prev 4096-ptr_max
PARAM_VALUE 0 inode->i_wb->list_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 inode->i_wb->work_lock.rlock.dep_map->name 0-255
DATA_SOURCE 2 written $3
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 written 1-s64max
LOCK2 0 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 0 &inode->i_mapping->invalidate_lock
TYPE_LOCK (struct inode)->i_rwsem

fs/fuse/file.c fuse_perform_write() -> fuse_write_update_attr()

Type Parameter Key Value
PARAM_VALUE 0 inode 4096-ptr_max
PARAM_VALUE 0 inode->i_sb 4096-ptr_max
PARAM_VALUE 2 written 0-s64max
FUZZY_MAX 2 written 0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 pos s64min-9223372036854775806
UNITS 1 pos unit_byte
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem