Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:fs\io_uring.c Create Date:2022-07-28 20:22:16
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:io_timeout

Proto:static int io_timeout(struct io_kiocb *req)

Type:int

Parameter:

TypeParameterName
struct io_kiocb *req
2940  ctx = ctx
2943  span = 0
2945  data = timeout
2952  count = count
2953  If Not count Then
2954  flags |= timeout sequence
2955  spin_lock_irq( & completion_lock)
2956  entry = prev
2957  Go to add
2960  sequence = cached_sq_head + count - 1
2961  seq_offset = count
2967  spin_lock_irq( & completion_lock)
2969  nxt = list_entry - get the struct for this entry*@ptr: the &struct list_head pointer.*@type: the type of the struct this is embedded in.*@member: the name of the list_head within the struct.(entry, structio_kiocb, list)
2972  nxt_offset = seq_offset
2974  If flags & timeout sequence Then Continue
2981  tmp = cached_sq_head + count - 1
2982  nxt_sq_head = sequence - nxt_offset + 1
2983  tmp_nxt = nxt_sq_head + nxt_offset - 1
2989  If cached_sq_head < nxt_sq_head Then tmp += UINT_MAX
2992  If tmp > tmp_nxt Then Break
2999  span++
3000  sequence++
3002  sequence -= span
3003  add :
3004  list_add - add a new entry*@new: new entry to be added*@head: list head to add it after* Insert a new entry after the specified head.* This is good for implementing stacks.
3005  function = io_timeout_fn
3006  hrtimer_start - (re)start an hrtimer*@timer: the timer to be added*@tim: expiry time*@mode: timer mode: absolute (HRTIMER_MODE_ABS) or* relative (HRTIMER_MODE_REL), and pinned (HRTIMER_MODE_PINNED);* softirq based mode is considered for debug purpose only!
3007  spin_unlock_irq( & completion_lock)
3008  Return 0
Caller
NameDescribe
io_issue_sqe