函数逻辑报告 |
Source Code:fs\aio.c |
Create Date:2022-07-29 10:53:19 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:aio_migratepage
函数原型:static int aio_migratepage(struct address_space *mapping, struct page *new, struct page *old, enum migrate_mode mode)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct address_space * | mapping | |
struct page * | new | |
struct page * | old | |
enum migrate_mode | mode |
389 | 如果mode恒等于MIGRATE_SYNC_NO_COPY则返回:负EINVAL |
392 | rc等于0 |
395 | 加自旋锁 |
396 | ctx等于private_data |
397 | 如果非ctx则 |
414 | 如果ring_pages[idx]不等于old则rc等于负EAGAIN |
419 | 如果rc不等于0则转到:out_unlock |
423 | BUG_ON(Only test-and-set exist for PG_writeback. The unconditional operators are* risky: they bypass page accounting.) |
429 | 转到:out_unlock |
436 | spin_lock_irqsave( & completion_lock, flags) |
437 | migrate_page_copy(new, old) |
438 | BUG_ON(ring_pages[idx] != old) |
439 | ring_pages[idx]等于new |
440 | spin_unlock_irqrestore( & completion_lock, flags) |
445 | out_unlock : |
447 | out : |
448 | 自旋锁解锁 |
449 | 返回:rc |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |