函数逻辑报告 | 
Source Code:block\blk-cgroup.c | 
Create Date:2022-07-27 19:16:11 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| 首页 | 函数Tree | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称:lkcg_activate_policy - activate a blkcg policy on a request_queue*@q: request_queue of interest*@pol: blkcg policy to activate* Activate @pol on @q
函数原型:int blkcg_activate_policy(struct request_queue *q, const struct blkcg_policy *pol)
返回类型:int
参数:
| 类型 | 参数 | 名称 | 
|---|---|---|
| struct request_queue * | q | |
| const struct blkcg_policy * | pol | 
| 1241 | struct blkg_policy_data * pd_prealloc = NULL | 
| 1242 | struct blkcg_gq * blkg, * pinned_blkg = NULL | 
| 1245 | 如果blkcg_policy_enabled(q, pol)则返回:0 | 
| 1248 | 如果queue_is_mq(q)则blk_mq_freeze_queue(q) | 
| 1250 | retry : | 
| 1251 | spin_lock_irq( & queue_lock) | 
| 1261 | 如果blkg恒等于pinned_blkg则 | 
| 1262 | pd等于pd_prealloc | 
| 1263 | pd_prealloc = NULL | 
| 1264 | 否则 | 
| 1269 | 如果非pd则 | 
| 1277 | pinned_blkg等于blkg | 
| 1279 | spin_unlock_irq( & queue_lock) | 
| 1281 | 如果pd_prealloc则pd_free_fn(pd_prealloc) | 
| 1283 | pd_prealloc等于pd_alloc_fn(GFP_KERNEL, q, blkcg) | 
| 1285 | 如果pd_prealloc则转到:retry | 
| 1287 | 否则转到:enomem | 
| 1299 | pd_init_fn(pd[plid]) | 
| 1302 | ret等于0 | 
| 1304 | spin_unlock_irq( & queue_lock) | 
| 1305 | out : | 
| 1306 | 如果queue_is_mq(q)则blk_mq_unfreeze_queue(q) | 
| 1310 | 如果pd_prealloc则pd_free_fn(pd_prealloc) | 
| 1312 | 返回:ret | 
| 1314 | enomem : | 
| 1316 | spin_lock_irq( & queue_lock) | 
| 1319 | pd_free_fn(pd[plid]) | 
| 1323 | spin_unlock_irq( & queue_lock) | 
| 1325 | 转到:out | 
| 源代码转换工具 开放的插件接口  | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码  |