Defined in 1 files as a function:
Referenced in 20 files:
- block/bio-integrity.c, line 408
- block/blk-map.c, line 515
- block/fops.c
- drivers/block/ublk_drv.c, line 4066
- drivers/infiniband/hw/hfi1/file_ops.c, line 270
- fs/ceph/file.c, line 1540
- fs/direct-io.c, line 1221
- fs/fuse/dev.c
- fs/fuse/file.c, line 1700
- fs/gfs2/file.c, line 789
- fs/iomap/direct-io.c
- fs/netfs/direct_read.c, line 189
- fs/netfs/direct_write.c, line 255
- fs/nfs/direct.c, line 477
- fs/smb/client/cifsproto.h, line 541
- include/linux/uio.h, line 422
- lib/iov_iter.c
- mm/shmem.c, line 3391
- net/rds/info.c, line 191
- sound/core/pcm_native.c
Smatch caller information:
net/rds/info.c iov_iter_extract_will_pin() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 1266357494456262696 |
| PARAM_VALUE | 0 | i->iter_type | 0-1 |
| DATA_SOURCE | 0 | i | $0 |
| RX_PATH |
net/rds/info.c rds_info_getsockopt() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 1266357494456262696 |
| RX_PATH |
lib/iov_iter.c __iov_iter_get_pages_alloc() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $0 |
| NOSPEC | 0 | i->count | |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HOST_DATA | 0 | i->count | 1-s32max[c] |
| HOST_DATA | 0 | i->iov_offset | 1-6442450941[c] |
| USER_DATA | 0 | i->count | 0-u64max |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
lib/iov_iter.c _copy_from_iter() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $2 |
| NOSPEC | 0 | i->count | |
| NOSPEC | 0 | i->iov_offset | |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HOST_DATA | 0 | i->iov_offset | 1-4294967294[c] |
| USER_DATA | 0 | i->count | 0-u64max |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &buffer->mutex | ||
| HALF_LOCKED2 | &conn->srv_mutex | ||
| HALF_LOCKED2 | &epdata->lock | ||
| HALF_LOCKED2 | &kcm->tx_mutex | ||
| HALF_LOCKED2 | &map->active.out_mutex | ||
| HALF_LOCKED2 | &of->mutex | ||
| HALF_LOCKED2 | &tty->atomic_write_lock | ||
| HALF_LOCKED2 | &tty->ldisc_sem | ||
| HALF_LOCKED2 | &vq->mutex | ||
| HALF_LOCKED2 | global &dax_srcu | ||
| HALF_LOCKED2 | rcu_read | ||
| HALF_LOCKED2 | sk | ||
| HALF_LOCKED2 | sock->sk |
lib/iov_iter.c _copy_mc_to_iter() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $2 |
| NOSPEC | 0 | i->count | |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 0-18446744073709551614 |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &cache_seg->gen_lock | ||
| HALF_LOCKED2 | &cache_subtree->tree_lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | global &dax_srcu |
lib/iov_iter.c _copy_to_iter() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| BUF_SIZE | 0 | i | (-1),24,40,64,128,280,1024 |
| BUF_SIZE | 0 | i | (-1),24,40,64,128,280,1024 |
| DATA_SOURCE | 0 | i | $2 |
| NOSPEC | 0 | i->count | |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 0-u64max |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| UNITS | 0 | i | unit_byte |
| HALF_LOCKED2 | &buffer->mutex | ||
| HALF_LOCKED2 | &call->user_mutex | ||
| HALF_LOCKED2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &inode->vfs_inode.i_rwsem | ||
| HALF_LOCKED2 | &m->lock | ||
| HALF_LOCKED2 | &map->active.in_mutex | ||
| HALF_LOCKED2 | &pipe->mutex | ||
| HALF_LOCKED2 | &sbefifo->lock | ||
| HALF_LOCKED2 | &tty->ldisc_sem | ||
| HALF_LOCKED2 | &vq->mutex | ||
| HALF_LOCKED2 | global &dax_srcu | ||
| HALF_LOCKED2 | global &page_offline_rwsem | ||
| HALF_LOCKED2 | global &vmcore_cb_srcu | ||
| HALF_LOCKED2 | sk |
lib/iov_iter.c iov_iter_extract_pages() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $0 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 0-u64max |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &tls_ctx->tx_lock | ||
| HALF_LOCKED2 | sk |
lib/iov_iter.c iov_iter_extract_will_pin() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| PARAM_VALUE | 0 | i->iter_type | 0-5 |
| DATA_SOURCE | 0 | i | $0 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 0-u64max[c] |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
fs/nfs/direct.c nfs_file_direct_read() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $1 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 1-1000000000 |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
mm/shmem.c shmem_file_read_iter() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $1 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 1-1000000000 |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &pool->lock |
block/bio-integrity.c bio_integrity_map_user() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 2053489065843576832,2054009744978411520 |
| DATA_SOURCE | 0 | i | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING |
lib/tests/kunit_iov_iter.c iov_iter_extract_will_pin() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 3048282000753262592,5160237283824492544,8463852778652590080,8677277146185875456,9014510593725669376 |
| DATA_SOURCE | 0 | i | $0 |
fs/direct-io.c __blockdev_direct_IO() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $3 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 0-u64max |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &pool->lock |
fs/direct-io.c iov_iter_extract_will_pin() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $0 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 0-u64max |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &pool->lock |
fs/fuse/dev.c fuse_dev_read() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | i | $1 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 1-1000000000 |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &pool->lock |
fs/fuse/dev.c fuse_dev_write() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | i | $1 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 0-18446744073709551614 |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &pool->lock |
block/blk-map.c blk_rq_map_user_iov() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 192091742437986304,994473194779484160,1619417322542931968,6944560901205405696 |
| PARAM_VALUE | 0 | i->iter_type | 0-1,3-255 |
| BUF_SIZE | 0 | i | (-1)-0,40 |
| BUF_SIZE | 0 | i | (-1)-0,40 |
| DATA_SOURCE | 0 | i | $3 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 0-s32max[c] |
drivers/block/ublk_drv.c ublk_user_copy() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | i | $1 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 0-18446744073709551614 |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &pool->lock |
block/bio.c iov_iter_extract_will_pin() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $0 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 0-u64max |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
crypto/af_alg.c iov_iter_extract_will_pin() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $0 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 0-u64max |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| LOCK2 | sk | ||
| HALF_LOCKED2 | &vq->mutex |
drivers/infiniband/hw/hfi1/file_ops.c hfi1_write_iter() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $1 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 0-18446744073709551614 |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &pool->lock |
fs/netfs/direct_read.c iov_iter_extract_will_pin() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| PARAM_VALUE | 0 | i->iter_type | 0-1 |
| DATA_SOURCE | 0 | i | $0 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 1-1000000000 |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &cinode->lock_sem | ||
| HALF_LOCKED2 | &inode->i_rwsem |
fs/netfs/direct_read.c netfs_unbuffered_read_iter_locked() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $1 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 1-1000000000 |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &cinode->lock_sem | ||
| HALF_LOCKED2 | &inode->i_rwsem |
sound/core/pcm_native.c snd_pcm_readv() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $1 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 1-1000000000 |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &pool->lock |
sound/core/pcm_native.c snd_pcm_writev() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $1 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 0-18446744073709551614 |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &pool->lock |
fs/smb/client/smb2ops.c cifs_get_num_sgs() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &server->_srv_mutex |
fs/smb/client/smb2ops.c iov_iter_extract_will_pin() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &server->_srv_mutex |
fs/gfs2/file.c should_fault_in_pages() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $0 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 0-u64max |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &pool->lock |
block/fops.c __blkdev_direct_IO() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $1 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 0-18446744073709551614 |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &pool->lock |
block/fops.c __blkdev_direct_IO_async() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $1 |
| NOSPEC | 0 | i->count | |
| NOSPEC | 0 | i->iov_offset | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 0-18446744073709551614 |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &pool->lock |
block/fops.c __blkdev_direct_IO_simple() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $1 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 0-18446744073709551614 |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &pool->lock |
crypto/algif_hash.c iov_iter_extract_will_pin() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| PARAM_VALUE | 0 | i->iter_type | 0-5 |
| DATA_SOURCE | 0 | i | $0 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 1-18446744073709551614 |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| LOCK2 | sk | ||
| HALF_LOCKED2 | &vq->mutex |
fs/netfs/direct_write.c iov_iter_extract_will_pin() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| PARAM_VALUE | 0 | i->iter_type | 0-1 |
| DATA_SOURCE | 0 | i | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &inode->i_rwsem |
fs/netfs/direct_write.c netfs_unbuffered_write_iter_locked() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &inode->i_rwsem |
fs/iomap/direct-io.c __iomap_dio_read_simple() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $1 |
| NOSPEC | 0 | i->count | |
| NOSPEC | 0 | i->iov_offset | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 1-1000000000 |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &pool->lock |
fs/iomap/direct-io.c __iomap_dio_rw() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $1 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 0-18446744073709551614 |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
fs/ceph/file.c ceph_direct_read_write() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $1 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 1-s32max |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| LOCK2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct inode)->i_rwsem |
fs/fuse/file.c fuse_direct_io() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $1 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 0-u64max |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &iocb->ki_filp->f_inode->i_rwsem | ||
| HALF_LOCKED2 | &pool->lock |
fs/fuse/file.c iov_iter_extract_will_pin() -> user_backed_iter()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | i | 4096-ptr_max |
| DATA_SOURCE | 0 | i | $0 |
| NOSPEC | 0 | i->count | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | i->count | 0-u64max |
| USER_DATA | 0 | i->iov_offset | 0-u64max[c] |
| HALF_LOCKED2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &iocb->ki_filp->f_inode->i_rwsem | ||
| HALF_LOCKED2 | &pool->lock |