From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1030381AbWLTWQj (ORCPT ); Wed, 20 Dec 2006 17:16:39 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1030385AbWLTWQj (ORCPT ); Wed, 20 Dec 2006 17:16:39 -0500 Received: from amsfep17-int.chello.nl ([62.179.120.12]:21122 "EHLO amsfep17-int.chello.nl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1030383AbWLTWQi (ORCPT ); Wed, 20 Dec 2006 17:16:38 -0500 Subject: Re: [PATCH] mm: fix page_mkclean_one (was: 2.6.19 file content corruption on ext3) From: Peter Zijlstra To: Linus Torvalds Cc: Martin Michlmayr , Hugh Dickins , Nick Piggin , Arjan van de Ven , Andrei Popa , Andrew Morton , Linux Kernel Mailing List , Florian Weimer , Marc Haber , Martin Schwidefsky , Heiko Carstens , Arnd Bergmann , gordonfarquharson@gmail.com In-Reply-To: References: <1166571749.10372.178.camel@twins> <1166605296.10372.191.camel@twins> <1166607554.3365.1354.camel@laptopd505.fenrus.org> <1166614001.10372.205.camel@twins> <1166622979.10372.224.camel@twins> <20061220170323.GA12989@deprecation.cyrius.com> <20061220175309.GT30106@deprecation.cyrius.com> Content-Type: text/plain Date: Wed, 20 Dec 2006 23:15:01 +0100 Message-Id: <1166652901.30008.1.camel@twins> Mime-Version: 1.0 X-Mailer: Evolution 2.8.1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org I think this is also needed: --- mm/truncate.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) Index: linux-2.6/mm/truncate.c =================================================================== --- linux-2.6.orig/mm/truncate.c +++ linux-2.6/mm/truncate.c @@ -320,19 +320,14 @@ invalidate_complete_page2(struct address if (PagePrivate(page) && !try_to_release_page(page, GFP_KERNEL)) return 0; + cancel_dirty_page(page, PAGE_CACHE_SIZE); lock_page_ref_irq(page); - if (PageDirty(page)) - goto failed; - BUG_ON(PagePrivate(page)); __remove_from_page_cache(page); unlock_page_ref_irq(page); ClearPageUptodate(page); page_cache_release(page); /* pagecache ref */ return 1; -failed: - unlock_page_ref_irq(page); - return 0; } /**