mm/swapfile: use list_{prev,next}_entry() instead of open-coding
Use list_{prev,next}_entry() instead of list_entry() for better code readability. Signed-off-by: chenqiwu <chenqiwu@xiaomi.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Cc: Matthew Wilcox <willy@infradead.org> Cc: David Hildenbrand <david@redhat.com> Cc: Wei Yang <richard.weiyang@gmail.com> Cc: Michal Hocko <mhocko@suse.com> Cc: Pankaj Gupta <pankaj.gupta.linux@gmail.com> Cc: Yang Shi <yang.shi@linux.alibaba.com> Cc: Qian Cai <cai@lca.pw> Cc: Baoquan He <bhe@redhat.com> Link: http://lkml.kernel.org/r/1586599916-15456-2-git-send-email-qiwuchen55@gmail.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
548b6a1e55
Коммит
213516ac07
|
@ -3654,7 +3654,7 @@ static bool swap_count_continued(struct swap_info_struct *si,
|
|||
|
||||
spin_lock(&si->cont_lock);
|
||||
offset &= ~PAGE_MASK;
|
||||
page = list_entry(head->lru.next, struct page, lru);
|
||||
page = list_next_entry(head, lru);
|
||||
map = kmap_atomic(page) + offset;
|
||||
|
||||
if (count == SWAP_MAP_MAX) /* initial increment from swap_map */
|
||||
|
@ -3666,13 +3666,13 @@ static bool swap_count_continued(struct swap_info_struct *si,
|
|||
*/
|
||||
while (*map == (SWAP_CONT_MAX | COUNT_CONTINUED)) {
|
||||
kunmap_atomic(map);
|
||||
page = list_entry(page->lru.next, struct page, lru);
|
||||
page = list_next_entry(page, lru);
|
||||
BUG_ON(page == head);
|
||||
map = kmap_atomic(page) + offset;
|
||||
}
|
||||
if (*map == SWAP_CONT_MAX) {
|
||||
kunmap_atomic(map);
|
||||
page = list_entry(page->lru.next, struct page, lru);
|
||||
page = list_next_entry(page, lru);
|
||||
if (page == head) {
|
||||
ret = false; /* add count continuation */
|
||||
goto out;
|
||||
|
@ -3682,12 +3682,10 @@ init_map: *map = 0; /* we didn't zero the page */
|
|||
}
|
||||
*map += 1;
|
||||
kunmap_atomic(map);
|
||||
page = list_entry(page->lru.prev, struct page, lru);
|
||||
while (page != head) {
|
||||
while ((page = list_prev_entry(page, lru)) != head) {
|
||||
map = kmap_atomic(page) + offset;
|
||||
*map = COUNT_CONTINUED;
|
||||
kunmap_atomic(map);
|
||||
page = list_entry(page->lru.prev, struct page, lru);
|
||||
}
|
||||
ret = true; /* incremented */
|
||||
|
||||
|
@ -3698,7 +3696,7 @@ init_map: *map = 0; /* we didn't zero the page */
|
|||
BUG_ON(count != COUNT_CONTINUED);
|
||||
while (*map == COUNT_CONTINUED) {
|
||||
kunmap_atomic(map);
|
||||
page = list_entry(page->lru.next, struct page, lru);
|
||||
page = list_next_entry(page, lru);
|
||||
BUG_ON(page == head);
|
||||
map = kmap_atomic(page) + offset;
|
||||
}
|
||||
|
@ -3707,13 +3705,11 @@ init_map: *map = 0; /* we didn't zero the page */
|
|||
if (*map == 0)
|
||||
count = 0;
|
||||
kunmap_atomic(map);
|
||||
page = list_entry(page->lru.prev, struct page, lru);
|
||||
while (page != head) {
|
||||
while ((page = list_prev_entry(page, lru)) != head) {
|
||||
map = kmap_atomic(page) + offset;
|
||||
*map = SWAP_CONT_MAX | count;
|
||||
count = COUNT_CONTINUED;
|
||||
kunmap_atomic(map);
|
||||
page = list_entry(page->lru.prev, struct page, lru);
|
||||
}
|
||||
ret = count == COUNT_CONTINUED;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче