From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoph Hellwig Subject: Re: [PATCH 10/11] hfsplus: optimize fsync Date: Thu, 18 Nov 2010 15:16:57 +0100 Message-ID: <20101118141657.GA16690@lst.de> References: <20101117222117.GA21700@lst.de> <20101117222313.GK21700@lst.de> <20101118135047.GA14669@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Christoph Hellwig , linux-fsdevel@vger.kernel.org To: Nick Piggin Return-path: Received: from verein.lst.de ([213.95.11.210]:56552 "EHLO verein.lst.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757877Ab0KROQ7 (ORCPT ); Thu, 18 Nov 2010 09:16:59 -0500 Content-Disposition: inline In-Reply-To: Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Fri, Nov 19, 2010 at 01:13:55AM +1100, Nick Piggin wrote: > >> Anyway, what if writeback noticed pagecache was cleaned at this point, and then > >> clears I_DIRTY bits from inode before you test it above? Won't that leave your > >> metadata not on disk? > > I'm not sure if you answered this, though. Can't background writeout go through > and clear the I_DIRTY_* bits on your inode, so that a subsequent fsync will skip > required writeout because i_state is clean, but your private dirty > bits are still set? > > That was my (poorly worded) concern. Good point - we should just skip the sync_inode_metadata for that case. Which already is a no-op if no dirty bits are set, so just removing the I_DIRTY check probably is the best thing we can do here.