函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:block\blk-ioc.c Create Date:2022-07-27 18:39:32
Last Modify:2020-03-17 23:16:06 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:put_io_context - put a reference of io_context*@ioc: io_context to put* Decrement reference count of @ioc and release it if the count reaches* zero.

函数原型:void put_io_context(struct io_context *ioc)

返回类型:void

参数:

类型参数名称
struct io_context *ioc
138  bool free_ioc = false
140  如果(ioc == NULL)则返回
143  BUG_ON(atomic_long_read( & 引用计数) <= 0)
149  如果atomic_long_dec_and_test( & 引用计数)则
150  spin_lock_irqsave( & 自旋锁, flags)
151  如果非hlist_empty( & icq_list)则queue_work - queue work on a workqueue*@wq: workqueue to use*@work: work to queue* Returns %false if @work was already on a queue, %true otherwise.* We queue the work to the CPU on which it was submitted, but if the CPU dies
154  否则free_ioc = true
156  spin_unlock_irqrestore( & 自旋锁, flags)
159  如果free_iockmem_cache_free(For io context allocations, ioc)
调用者
名称描述
put_io_context_activeput_io_context_active - put active reference on ioc*@ioc: ioc of interest* Undo get_io_context_active(). If active reference reaches zero after* put, @ioc can never issue further IOs and ioscheds are notified.
blk_mq_free_request
set_task_ioprio
copy_io复制I/O