xfs
[Top] [All Lists]

Re: [patch 0/9] writeback data integrity and other fixes (take 3)

To: Chris Mason <chris.mason@xxxxxxxxxx>
Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3)
From: Nick Piggin <npiggin@xxxxxxx>
Date: Thu, 30 Oct 2008 03:16:01 +0100
Cc: Ric Wheeler <ricwheeler@xxxxxxxxx>, Jamie Lokier <jamie@xxxxxxxxxxxxx>, Christoph Hellwig <hch@xxxxxxxxxxxxx>, linux-nfs@xxxxxxxxxxxxxxx, akpm@xxxxxxxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx, linux-fsdevel@xxxxxxxxxxxxxxx
In-reply-to: <1225292196.6448.263.camel@xxxxxxxxxxxxxxxxxxxx>
References: <20081028222746.GB4985@disturbed> <20081029001653.GF15599@xxxxxxxxxxxxx> <20081029031645.GE4985@disturbed> <20081029091203.GA32545@xxxxxxxxxxxxx> <20081029092143.GA5953@xxxxxxxxxxxxx> <20081029094417.GA21824@xxxxxxxxxxxxx> <20081029103029.GC5953@xxxxxxxxxxxxx> <20081029122234.GE846@xxxxxxxxxxxxx> <490865E3.8070102@xxxxxxxxx> <1225292196.6448.263.camel@xxxxxxxxxxxxxxxxxxxx>
User-agent: Mutt/1.5.9i
On Wed, Oct 29, 2008 at 10:56:36AM -0400, Chris Mason wrote:
> On Wed, 2008-10-29 at 09:32 -0400, Ric Wheeler wrote:
> > Jamie Lokier wrote:
> 
> > >> Is there anything that particularly makes it a file operation
> > >> as opposed to an inode operation?
> > >>     
> > >
> > > In principle, is fsync() required to flush all dirty data written
> > > through any file descriptor ever, or just dirty data written through
> > > the file descriptor used for fsync()?
> > >
> > > -- Jamie
> > > --
> > >   
> > http://www.opengroup.org/onlinepubs/009695399/functions/fsync.html
> > 
> > Is a pointer to what seems to be the official posix spec for this - it 
> > is definitely per file descriptor, not per file system, etc...
> > 
> 
> Maybe I'm reading Jamie's question wrong, but I think he's saying:
> 
> /* open exactly the same file twice */
> fd = open("file");
> fd2 = open("file");
> 
> write(fd, "stuff")
> write(fd2, "more stuff")
> fsync(fd);
> 
> Does the fsync promise "more stuff" will be on disk?  I think the answer
> should be yes.

I think so. And this is in the context of making ->fsync an inode
operation and avoid the NFS NULL-file problem... I don't think there
is any fd specific metadata that fsync has to deal with? Any other
reasons it has to be a file operation?

<Prev in Thread] Current Thread [Next in Thread>