From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161244AbXAMD2M (ORCPT ); Fri, 12 Jan 2007 22:28:12 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1161246AbXAMD2L (ORCPT ); Fri, 12 Jan 2007 22:28:11 -0500 Received: from mx2.suse.de ([195.135.220.15]:46775 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1161230AbXAMD2G (ORCPT ); Fri, 12 Jan 2007 22:28:06 -0500 From: Nick Piggin To: Linux Memory Management Cc: Andrew Morton , Dave Airlie , Benjamin Herrenschmidt , Linux Kernel , Nick Piggin , thomas@tungstengraphics.com Message-Id: <20070113011546.9479.34967.sendpatchset@linux.site> In-Reply-To: <20070113011526.9479.79596.sendpatchset@linux.site> References: <20070113011526.9479.79596.sendpatchset@linux.site> Subject: [patch 2/7] mm: simplify filemap_nopage Date: Sat, 13 Jan 2007 04:28:01 +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 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.