From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751116AbXBUEuf (ORCPT ); Tue, 20 Feb 2007 23:50:35 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751130AbXBUEue (ORCPT ); Tue, 20 Feb 2007 23:50:34 -0500 Received: from mx2.suse.de ([195.135.220.15]:41426 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751116AbXBUEuA (ORCPT ); Tue, 20 Feb 2007 23:50:00 -0500 From: Nick Piggin To: Linux Memory Management , Andrew Morton Cc: Linux Kernel , Nick Piggin , Benjamin Herrenschmidt Message-Id: <20070221023715.6306.91494.sendpatchset@linux.site> In-Reply-To: <20070221023656.6306.246.sendpatchset@linux.site> References: <20070221023656.6306.246.sendpatchset@linux.site> Subject: [patch 2/6] mm: simplify filemap_nopage Date: Wed, 21 Feb 2007 05:49:56 +0100 (CET) Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org 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 mm/filemap.c | 24 ------------------------ 1 file changed, 24 deletions(-) Index: linux-2.6/mm/filemap.c =================================================================== --- linux-2.6.orig/mm/filemap.c +++ linux-2.6/mm/filemap.c @@ -1448,30 +1448,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.