From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrea Arcangeli Subject: Re: kjournald() with DIO Date: Thu, 15 Sep 2005 21:22:25 +0200 Message-ID: <20050915192225.GJ4122@opteron.random> References: <20050912163732.036b2971.akpm@osdl.org> <1126569984.14837.47.camel@dyn9047017102.beaverton.ibm.com> <20050912172935.19907edf.akpm@osdl.org> <1126630370.14837.60.camel@dyn9047017102.beaverton.ibm.com> <20050913160701.355cd46a.akpm@osdl.org> <1126718583.4010.6.camel@localhost.localdomain> <20050914111809.41c5b395.akpm@osdl.org> <1126734025.4010.21.camel@localhost.localdomain> <20050914150224.3b6d7051.akpm@osdl.org> <1126796604.14837.111.camel@dyn9047017102.beaverton.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Andrew Morton , cmm@us.ibm.com, linux-fsdevel@vger.kernel.org, sct@redhat.com Return-path: Received: from ppp-217-133-42-200.cust-adsl.tiscali.it ([217.133.42.200]:46704 "EHLO opteron.random") by vger.kernel.org with ESMTP id S965140AbVIOTWP (ORCPT ); Thu, 15 Sep 2005 15:22:15 -0400 To: Badari Pulavarty Content-Disposition: inline In-Reply-To: <1126796604.14837.111.camel@dyn9047017102.beaverton.ibm.com> Sender: linux-fsdevel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Thu, Sep 15, 2005 at 08:03:23AM -0700, Badari Pulavarty wrote: > FWIW, I changed it to call truncate_complete_page() and the tests ran > fine overnight. What is the main difference between the two? (besides the removal of of the pagecache that isn't interesting here). That it calls ->invalidatepage (ext3_invalidatepage) instead of ->releasepage? ->invalidatepage must be freeing the buffers too (the fs thinks the data block will be released) so why is there a difference between ->releasepage and ->invalidatepage in the first place? What if you define both of them to the invalidatepage implementation? (with a local change to ext3 calling ext3_invalidatepage with offset = 0 inside ext3_releasepage, the gfpmask should also be checked but that's not important for now) Just trying to understand why truncatepage blocks and waits, and releasepage doesn't (which seems the reason why we have a problem in the first place).