Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:block\blk-ioc.c Create Date:2022-07-28 17:04:15
Last Modify:2020-03-17 23:16:06 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:Slow path for ioc release in put_io_context(). Performs double-lock* dancing to unlink all icq's and then frees ioc.

Proto:static void ioc_release_fn(struct work_struct *work)

Type:void

Parameter:

TypeParameterName
struct work_struct *work
96  ioc = container_of - cast a member of a structure out to the containing structure*@ptr: the pointer to the member.*@type: the type of the container struct this is embedded in.*@member: the name of the member within the struct.(work, structio_context, release_work)
106  spin_lock_irqsave_nested( & all the fields below are protected by this lock , flags, 1)
108  When Not hlist_empty( & icq_list) cycle
109  icq = hlist_entry(first, structio_cq, ioc_node)
111  q = >icq_list and icq->q_node by q lock.
113  If spin_trylock( & queue_lock) Then
116  Else
118  cpu_relax()
123  spin_unlock_irqrestore( & all the fields below are protected by this lock , flags)
125  kmem_cache_free(For io context allocations, ioc)