函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:fs\aio.c Create Date:2022-07-29 10:53:32
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:aio_poll

函数原型:static int aio_poll(struct aio_kiocb *aiocb, const struct iocb *iocb)

返回类型:int

参数:

类型参数名称
struct aio_kiocb *aiocb
const struct iocb *iocb
1735  ctx等于ki_ctx
1736  req等于poll
1738  bool cancel = false
1742  如果读写操作对应的内存不等于读写操作对应的内存则返回:负EINVAL
1745  如果读写操作对应的文件偏移需要读写的字节长度RWF_* flags 则返回:负EINVAL
1748  INIT_WORK( & work, aio_poll_complete_work)
1749  events等于demangle_poll(读写操作对应的内存)按位或EPOLLERR按位或EPOLLHUP
1751  head = NULL
1752  done = false
1753  cancelled = false
1755  _qproc等于aio_poll_queue_proc
1756  _key等于events
1757  iocb等于aiocb
1758  error等于负EINVAL
1761  初始化链表头
1762  init_waitqueue_func_entry( & wait, aio_poll_wake)
1764  mask等于vfs_poll(file, & pt)按位与events
1765  spin_lock_irq( & ctx_lock)
1766  如果此条件成立可能性大(为编译器优化)(head)则
1767  加自旋锁
1769  如果errorcancel = true
1771  error等于0
1772  mask等于0
1774  如果maskerror
1776  否则如果cancel
1777  WRITE_ONCE(cancelled, true)
1778  否则如果非done
1782  自旋锁解锁
1784  如果mask
1785  IO请求的结果等于mangle_poll(mask)
1786  error等于0
1788  spin_unlock_irq( & ctx_lock)
1789  如果maskiocb_put(aiocb)
1791  返回:error
调用者
名称描述
__io_submit_one