Defined in 1 files as a prototype:
Defined in 1 files as a function:
Referenced in 3 files:
Smatch caller information:
fs/fuse/dax.c fuse_dax_direct_write() -> fuse_direct_io()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | io | 2154835075093929984 |
| PARAM_VALUE | 0 | io->async | 0 |
| PARAM_VALUE | 0 | io->blocking | 0 |
| PARAM_VALUE | 0 | io->bytes | 0 |
| PARAM_VALUE | 0 | io->done | 0 |
| PARAM_VALUE | 0 | io->err | 0 |
| PARAM_VALUE | 0 | io->iocb | 4096-ptr_max |
| PARAM_VALUE | 0 | io->lock.dep_map.cpu | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.ip | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.key | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.lock_type | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.name | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.wait_type_inner | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.wait_type_outer | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.cpu | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.ip | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.key | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.lock_type | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.name | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.wait_type_inner | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.wait_type_outer | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.magic | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.owner | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.owner_cpu | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.raw_lock.locked | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.raw_lock.locked_pending | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.raw_lock.pending | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.raw_lock.tail | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.raw_lock.val.counter | 0 |
| PARAM_VALUE | 0 | io->offset | 0 |
| PARAM_VALUE | 0 | io->refcnt.refcount.refs.counter | 1 |
| PARAM_VALUE | 0 | io->reqs | 0 |
| PARAM_VALUE | 0 | io->should_dirty | 0 |
| PARAM_VALUE | 0 | io->size | 0 |
| PARAM_VALUE | 0 | io->work.data.counter | 0 |
| PARAM_VALUE | 0 | io->work.entry.next | 0 |
| PARAM_VALUE | 0 | io->work.entry.prev | 0 |
| PARAM_VALUE | 0 | io->work.func | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.cpu | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.ip | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.key | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.lock_type | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.name | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.wait_type_inner | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.wait_type_outer | 0 |
| PARAM_VALUE | 0 | io->write | 0 |
| PARAM_VALUE | 1 | iter | 4096-ptr_max |
| PARAM_VALUE | 1 | iter->count | 0-18446744073709551614 |
| PARAM_VALUE | 1 | iter->data_source | 1 |
| PARAM_VALUE | 2 | ppos | 4096-ptr_max |
| PARAM_VALUE | 2 | *ppos | s64min-9223372036854775806 |
| PARAM_VALUE | 3 | flags | 1 |
| DATA_SOURCE | 1 | iter | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | iter->iov_offset | 0-u64max[c] |
| USER_DATA | 2 | *ppos | s64min-(-2),0-9223372036854775806[c] |
| USER_PTR | 2 | ppos | |
| LOCK2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct inode)->i_rwsem |
fs/fuse/cuse.c cuse_read_iter() -> fuse_direct_io()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | io | 381615178956713984 |
| PARAM_VALUE | 0 | io->async | 0 |
| PARAM_VALUE | 0 | io->blocking | 0 |
| PARAM_VALUE | 0 | io->bytes | 0 |
| PARAM_VALUE | 0 | io->done | 0 |
| PARAM_VALUE | 0 | io->err | 0 |
| PARAM_VALUE | 0 | io->iocb | 4096-ptr_max |
| PARAM_VALUE | 0 | io->lock.dep_map.cpu | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.ip | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.key | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.lock_type | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.name | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.wait_type_inner | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.wait_type_outer | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.cpu | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.ip | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.key | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.lock_type | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.name | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.wait_type_inner | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.wait_type_outer | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.magic | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.owner | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.owner_cpu | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.raw_lock.locked | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.raw_lock.locked_pending | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.raw_lock.pending | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.raw_lock.tail | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.raw_lock.val.counter | 0 |
| PARAM_VALUE | 0 | io->offset | 0 |
| PARAM_VALUE | 0 | io->refcnt.refcount.refs.counter | 1 |
| PARAM_VALUE | 0 | io->reqs | 0 |
| PARAM_VALUE | 0 | io->should_dirty | 0 |
| PARAM_VALUE | 0 | io->size | 0 |
| PARAM_VALUE | 0 | io->work.data.counter | 0 |
| PARAM_VALUE | 0 | io->work.entry.next | 0 |
| PARAM_VALUE | 0 | io->work.entry.prev | 0 |
| PARAM_VALUE | 0 | io->work.func | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.cpu | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.ip | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.key | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.lock_type | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.name | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.wait_type_inner | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.wait_type_outer | 0 |
| PARAM_VALUE | 0 | io->write | 0 |
| PARAM_VALUE | 2 | ppos | 9055757648252674048 |
| PARAM_VALUE | 2 | *ppos | 0 |
| PARAM_VALUE | 3 | flags | 2 |
| DATA_SOURCE | 1 | iter | $1 |
| NOSPEC | 1 | iter->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | iter->count | 1-1000000000 |
| USER_DATA | 1 | iter->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &pool->lock |
fs/fuse/cuse.c cuse_write_iter() -> fuse_direct_io()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | io | 2266061028019687424 |
| PARAM_VALUE | 0 | io->async | 0 |
| PARAM_VALUE | 0 | io->blocking | 0 |
| PARAM_VALUE | 0 | io->bytes | 0 |
| PARAM_VALUE | 0 | io->done | 0 |
| PARAM_VALUE | 0 | io->err | 0 |
| PARAM_VALUE | 0 | io->iocb | 4096-ptr_max |
| PARAM_VALUE | 0 | io->lock.dep_map.cpu | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.ip | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.key | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.lock_type | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.name | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.wait_type_inner | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.wait_type_outer | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.cpu | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.ip | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.key | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.lock_type | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.name | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.wait_type_inner | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.wait_type_outer | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.magic | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.owner | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.owner_cpu | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.raw_lock.locked | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.raw_lock.locked_pending | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.raw_lock.pending | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.raw_lock.tail | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.raw_lock.val.counter | 0 |
| PARAM_VALUE | 0 | io->offset | 0 |
| PARAM_VALUE | 0 | io->refcnt.refcount.refs.counter | 1 |
| PARAM_VALUE | 0 | io->reqs | 0 |
| PARAM_VALUE | 0 | io->should_dirty | 0 |
| PARAM_VALUE | 0 | io->size | 0 |
| PARAM_VALUE | 0 | io->work.data.counter | 0 |
| PARAM_VALUE | 0 | io->work.entry.next | 0 |
| PARAM_VALUE | 0 | io->work.entry.prev | 0 |
| PARAM_VALUE | 0 | io->work.func | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.cpu | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.ip | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.key | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.lock_type | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.name | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.wait_type_inner | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.wait_type_outer | 0 |
| PARAM_VALUE | 0 | io->write | 0 |
| PARAM_VALUE | 2 | ppos | 6538680259346329600 |
| PARAM_VALUE | 2 | *ppos | 0 |
| PARAM_VALUE | 3 | flags | 3 |
| DATA_SOURCE | 1 | iter | $1 |
| NOSPEC | 1 | iter->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | iter->count | 0-18446744073709551614 |
| USER_DATA | 1 | iter->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &pool->lock |
fs/fuse/file.c __fuse_direct_read() -> fuse_direct_io()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | io | 4096-ptr_max |
| PARAM_VALUE | 0 | io->async | 0-1 |
| PARAM_VALUE | 0 | io->bytes | (-1)-0 |
| PARAM_VALUE | 0 | io->err | 0 |
| PARAM_VALUE | 0 | io->iocb | 4096-ptr_max |
| PARAM_VALUE | 0 | io->iocb->ki_filp | 4096-ptr_max |
| PARAM_VALUE | 0 | io->reqs | 0-1 |
| PARAM_VALUE | 0 | io->size | 0 |
| PARAM_VALUE | 0 | io->write | 0 |
| PARAM_VALUE | 2 | ppos | 4096-ptr_max |
| PARAM_VALUE | 3 | flags | 0 |
| BUF_SIZE | 0 | io | (-1),232 |
| BUF_SIZE | 0 | io | (-1),232 |
| BUF_SIZE | 0 | io->done | (-1),96 |
| DATA_SOURCE | 0 | io | $0 |
| DATA_SOURCE | 1 | iter | $1 |
| DATA_SOURCE | 2 | ppos | $2 |
| NOSPEC | 1 | iter->count | |
| NOSPEC | 2 | *ppos | |
| HARD_MAX | 0 | io->bytes | 0 |
| HARD_MAX | 0 | io->reqs | 1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | io->iocb->ki_flags | 0-s32max[c][u] |
| USER_DATA | 0 | io->iocb->ki_ioprio | 0-u16max |
| USER_DATA | 0 | io->iocb->ki_pos | s64min-(-2),0-s64max |
| USER_DATA | 0 | io->offset | 0-9223372036854775806,9223372036854775808-18446744073709551614 |
| USER_DATA | 1 | iter->count | 0-u64max |
| USER_DATA | 1 | iter->iov_offset | 0-u64max[c] |
| USER_DATA | 2 | *ppos | s64min-(-2),0-9223372036854775806 |
| USER_PTR | 2 | ppos | |
| HALF_LOCKED2 | &pool->lock |
fs/fuse/file.c fuse_direct_IO() -> fuse_direct_io()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | io | 4096-ptr_max |
| PARAM_VALUE | 0 | io->async | 0-1 |
| PARAM_VALUE | 0 | io->bytes | (-1) |
| PARAM_VALUE | 0 | io->err | 0 |
| PARAM_VALUE | 0 | io->iocb | 4096-ptr_max |
| PARAM_VALUE | 0 | io->iocb->ki_filp | 4096-ptr_max |
| PARAM_VALUE | 0 | io->reqs | 1 |
| PARAM_VALUE | 0 | io->size | 0 |
| PARAM_VALUE | 0 | io->write | 1 |
| PARAM_VALUE | 1 | iter | 4096-ptr_max |
| PARAM_VALUE | 1 | iter->data_source | 1 |
| PARAM_VALUE | 2 | ppos | 8639320129230266368 |
| PARAM_VALUE | 3 | flags | 1 |
| BUF_SIZE | 0 | io | 232 |
| BUF_SIZE | 0 | io->done | (-1),96 |
| BUF_SIZE | 0 | io->iocb | (-1),48 |
| DATA_SOURCE | 0 | io | r _kmalloc_noprof |
| DATA_SOURCE | 1 | iter | $1 |
| NOSPEC | 1 | iter->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | io->iocb->ki_flags | 0-s32max[c][u] |
| USER_DATA | 0 | io->iocb->ki_ioprio | 0-u16max |
| USER_DATA | 0 | io->iocb->ki_pos | s64min-(-2),0-s64max |
| USER_DATA | 0 | io->offset | 0-18446744073709551614 |
| USER_DATA | 1 | iter->count | 0-u64max |
| USER_DATA | 1 | iter->iov_offset | 0-u64max[c] |
| USER_DATA | 2 | *ppos | s64min-(-2),0-s64max |
| USER_PTR | 2 | ppos | |
| 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_direct_io()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | io | 8198051027761844224 |
| PARAM_VALUE | 0 | io->async | 0 |
| PARAM_VALUE | 0 | io->blocking | 0 |
| PARAM_VALUE | 0 | io->bytes | 0 |
| PARAM_VALUE | 0 | io->done | 0 |
| PARAM_VALUE | 0 | io->err | 0 |
| PARAM_VALUE | 0 | io->iocb | 4096-ptr_max |
| PARAM_VALUE | 0 | io->lock.dep_map.cpu | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.ip | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.key | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.lock_type | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.name | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.wait_type_inner | 0 |
| PARAM_VALUE | 0 | io->lock.dep_map.wait_type_outer | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.cpu | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.ip | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.key | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.lock_type | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.name | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.wait_type_inner | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.dep_map.wait_type_outer | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.magic | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.owner | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.owner_cpu | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.raw_lock.locked | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.raw_lock.locked_pending | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.raw_lock.pending | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.raw_lock.tail | 0 |
| PARAM_VALUE | 0 | io->lock.rlock.raw_lock.val.counter | 0 |
| PARAM_VALUE | 0 | io->offset | 0 |
| PARAM_VALUE | 0 | io->refcnt.refcount.refs.counter | 1 |
| PARAM_VALUE | 0 | io->reqs | 0 |
| PARAM_VALUE | 0 | io->should_dirty | 0 |
| PARAM_VALUE | 0 | io->size | 0 |
| PARAM_VALUE | 0 | io->work.data.counter | 0 |
| PARAM_VALUE | 0 | io->work.entry.next | 0 |
| PARAM_VALUE | 0 | io->work.entry.prev | 0 |
| PARAM_VALUE | 0 | io->work.func | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.cpu | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.ip | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.key | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.lock_type | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.name | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.wait_type_inner | 0 |
| PARAM_VALUE | 0 | io->work.lockdep_map.wait_type_outer | 0 |
| PARAM_VALUE | 0 | io->write | 0 |
| PARAM_VALUE | 1 | iter | 4096-ptr_max |
| PARAM_VALUE | 1 | iter->count | 0-18446744073709551614 |
| PARAM_VALUE | 2 | ppos | 4096-ptr_max |
| PARAM_VALUE | 3 | flags | 1 |
| DATA_SOURCE | 1 | iter | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | iter->iov_offset | 0-u64max[c] |
| USER_DATA | 2 | *ppos | s64min-(-2),0-s64max |
| USER_PTR | 2 | ppos | |
| LOCK2 | &iocb->ki_filp->f_inode->i_rwsem | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct inode)->i_rwsem |