From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nick Piggin Subject: Re: [patch 8/8] fs: add i_op->sync_inode Date: Fri, 7 Jan 2011 15:48:36 +1100 Message-ID: <20110107044836.GB4552@amd> References: <20101218014634.943276411@kernel.dk> <20101218015117.759480620@kernel.dk> <20101229151246.GA22033@infradead.org> <20110104062725.GD3402@amd> <20110104065736.GA8013@infradead.org> <20110104080323.GC4090@amd> <20110104083132.GA4485@amd> <20110104092541.GC2760@infradead.org> <20110104095231.GB4812@amd> <20110106204911.GB2872@infradead.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Nick Piggin , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, Andrew Morton To: Christoph Hellwig Return-path: Content-Disposition: inline In-Reply-To: <20110106204911.GB2872@infradead.org> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Thu, Jan 06, 2011 at 03:49:11PM -0500, Christoph Hellwig wrote: > On Tue, Jan 04, 2011 at 08:52:31PM +1100, Nick Piggin wrote: > > OK I missed that part about not requiring dirty metadata to be written, > > just currently ongoing async operations. But then I don't understand how > > it would be used by nfsd, how does nfsd start some async operation on > > the inode metadata such that ->commit_metadata would do anything useful > > for it? > > NFSD calls various inode operations (create/mkdir/mknod/link/symlink/ > rename/unlink/rmdir/setattr) and then requires those operations to be > on disk before completing the request to the client, but it does not > require other dirty state to be written (data, unlogged size > or timestamp updates). Take a look at the XFS implementation: it just > checks if the inode is still pinned (that is in the in-memory log, but > not commited to disk) and if so forces the log up to the log buffer > that contains the last changes to the inode. OK, I don't exactly see why a sync_inode with appropriate flag could not solve that problem. I'll take a bit more look through nfs and xfs. Thanks...