diff options
author | Nick Piggin <npiggin@suse.de> | 2007-05-06 23:49:16 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-07 21:12:52 +0200 |
commit | a8127717cb24be7b8827a8d9e0ddbfde6b392146 (patch) | |
tree | 3b7d5556f127263b600bbcb44437c4c1739c000a /mm | |
parent | add pfn_valid_within helper for sub-MAX_ORDER hole detection (diff) | |
download | linux-a8127717cb24be7b8827a8d9e0ddbfde6b392146.tar.xz linux-a8127717cb24be7b8827a8d9e0ddbfde6b392146.zip |
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>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/filemap.c | 24 |
1 files changed, 0 insertions, 24 deletions
diff --git a/mm/filemap.c b/mm/filemap.c index 070e7547d5b5..cbea95a25283 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -1446,30 +1446,6 @@ page_not_uptodate: majmin = VM_FAULT_MAJOR; 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. |