[patch 2/7] mm: simplify filemap_nopage

2007-01-12 Thread Nick Piggin
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 <[EMAIL PROTECTED]>

Index: linux-2.6/mm/filemap.c
===
--- linux-2.6.orig/mm/filemap.c
+++ linux-2.6/mm/filemap.c
@@ -1468,30 +1468,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.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[patch 2/7] mm: simplify filemap_nopage

2007-01-12 Thread Nick Piggin
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 [EMAIL PROTECTED]

Index: linux-2.6/mm/filemap.c
===
--- linux-2.6.orig/mm/filemap.c
+++ linux-2.6/mm/filemap.c
@@ -1468,30 +1468,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.
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/