mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-03-21 06:24:12 +00:00
mm: simplify filemap_nopage
Identical block is duplicated twice: contrary to the comment, we have been re-reading the page *twice* in filemap_nopage rather than once. If any retry logic or anything is needed, it belongs in lower levels anyway. Only retry once. Linus agrees. Signed-off-by: Nick Piggin <npiggin@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
14e0729841
commit
a8127717cb
1 changed files with 0 additions and 24 deletions
24
mm/filemap.c
24
mm/filemap.c
|
@ -1446,30 +1446,6 @@ page_not_uptodate:
|
||||||
majmin = VM_FAULT_MAJOR;
|
majmin = VM_FAULT_MAJOR;
|
||||||
count_vm_event(PGMAJFAULT);
|
count_vm_event(PGMAJFAULT);
|
||||||
}
|
}
|
||||||
lock_page(page);
|
|
||||||
|
|
||||||
/* Did it get unhashed while we waited for it? */
|
|
||||||
if (!page->mapping) {
|
|
||||||
unlock_page(page);
|
|
||||||
page_cache_release(page);
|
|
||||||
goto retry_all;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Did somebody else get it up-to-date? */
|
|
||||||
if (PageUptodate(page)) {
|
|
||||||
unlock_page(page);
|
|
||||||
goto success;
|
|
||||||
}
|
|
||||||
|
|
||||||
error = mapping->a_ops->readpage(file, page);
|
|
||||||
if (!error) {
|
|
||||||
wait_on_page_locked(page);
|
|
||||||
if (PageUptodate(page))
|
|
||||||
goto success;
|
|
||||||
} else if (error == AOP_TRUNCATED_PAGE) {
|
|
||||||
page_cache_release(page);
|
|
||||||
goto retry_find;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Umm, take care of errors if the page isn't up-to-date.
|
* Umm, take care of errors if the page isn't up-to-date.
|
||||||
|
|
Loading…
Add table
Reference in a new issue