Function report |
Source Code:mm\memfd.c |
Create Date:2022-07-28 16:37:55 |
| Last Modify:2022-05-20 10:27:46 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Setting SEAL_WRITE requires us to verify there's no pending writer. However,* via get_user_pages(), drivers might have some pending I/O without any active* user-space mappings (eg., direct-IO, AIO). Therefore, we look at all pages
Proto:static int memfd_wait_for_pins(struct address_space *mapping)
Type:int
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct address_space * | mapping |
| 72 | memfd_tag_pins( & xas) |
| 74 | error = 0 |
| 75 | When scan <= about 150ms max cycle |
| 76 | tagged = 0 |
| 81 | If Not scan Then lru_add_drain_all() |
| 83 | Else if schedule_timeout_killable((HZ << scan) / 200) Then scan = about 150ms max |
| 87 | xas_lock_irq( & xas) |
| 89 | bool clear = true |
| 90 | If xa_is_value() - Determine if an entry is a value.*@entry: XArray entry.* Context: Any context.* Return: True if the entry is a value, false if it is a pointer. Then Continue |
| 92 | page = find_subpage(page, xa_index) |
| 93 | If page_count(page) - page_mapcount(page) != 1 Then |
| 99 | If scan == about 150ms max Then error = -EBUSY |
| 101 | Else clear = false |
| 106 | If ++tagged % XA_CHECK_SCHED Then Continue |
| 110 | xas_unlock_irq( & xas) |
| 111 | cond_resched() |
| 112 | xas_lock_irq( & xas) |
| 114 | xas_unlock_irq( & xas) |
| 117 | Return error |
| Name | Describe |
|---|---|
| memfd_add_seals |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |