On Thu, Mar 25, 2004 at 06:07:23AM -0800, Chris Wedgwood wrote:
> fsync()/sync() should mean all dirty DATA blocks and METADATA blocks
> are flushed to the backing store. Anything less than this is a bug.
Depends on how you define backing store.
> > Making sync push all the metadata itself would slow it down.
> sync() should also flush the metadata. If people wish to only flush
> data blocks there is fdatasync() for smart applications.
Read again what Steve wrote. All metadata is in the log, so it's not
lost on a crash. It's inplace, though, so unless grub relays the log
in memory somewhere before trying to use it's own xfs implementation
in userspace (which it doesn't), it doesn't see the data yet.
> > Now if grub is opening the block device and reading out of that, it
> > is looking at the same pages for metadata that xfs is looking at in
> > memory. There is a bug where you can get corruption if you access
> > the block device in parallel with the filesystem. Possibly this is
> > behind the problem.
> This will cause an oops on 2.6.x won't it --- so I suspect if this is
> behind the problem the report will be have been different.
I don't think they're hitting the problem, the symptoms look very different.