函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |