| .. | .. |
|---|
| 1128 | 1128 | LIST_HEAD(free_pages); |
|---|
| 1129 | 1129 | unsigned int nr_reclaimed = 0; |
|---|
| 1130 | 1130 | unsigned int pgactivate = 0; |
|---|
| 1131 | + bool page_trylock_result; |
|---|
| 1131 | 1132 | |
|---|
| 1132 | 1133 | memset(stat, 0, sizeof(*stat)); |
|---|
| 1133 | 1134 | cond_resched(); |
|---|
| .. | .. |
|---|
| 1527 | 1528 | count_memcg_page_event(page, PGACTIVATE); |
|---|
| 1528 | 1529 | } |
|---|
| 1529 | 1530 | keep_locked: |
|---|
| 1531 | + /* |
|---|
| 1532 | + * The page with trylock-bit will be added ret_pages and |
|---|
| 1533 | + * handled in trace_android_vh_handle_failed_page_trylock. |
|---|
| 1534 | + * In the progress[unlock_page, handled], the page carried |
|---|
| 1535 | + * with trylock-bit will cause some error-issues in other |
|---|
| 1536 | + * scene, so clear trylock-bit here. |
|---|
| 1537 | + * trace_android_vh_page_trylock_get_result will clear |
|---|
| 1538 | + * trylock-bit and return if page tyrlock failed in |
|---|
| 1539 | + * reclaim-process. Here we just want to clear trylock-bit |
|---|
| 1540 | + * so that ignore page_trylock_result. |
|---|
| 1541 | + */ |
|---|
| 1542 | + trace_android_vh_page_trylock_get_result(page, &page_trylock_result); |
|---|
| 1530 | 1543 | unlock_page(page); |
|---|
| 1531 | 1544 | keep: |
|---|
| 1532 | 1545 | list_add(&page->lru, &ret_pages); |
|---|