On Mon, Feb 06, 2012 at 11:33:29AM -0500, Jeff Moyer wrote:
> > code, right? Before that we'd drain the IO queue when cache flush is issued
> > and thus effectively wait for IO completion...
>
> Right, though hch seems to think even then the problem existed.
I was wrong, using -o barrier it didn't. That was however not something
people using O_SYNC heavy production loads would do, they'd use disabled
caches and nobarrier.
> > Also I was thinking whether we couldn't implement the fix in VFS. Basically
> > it would be the same like the fix for ext4. Like having a per-sb workqueue
> > and queue work calling generic_write_sync() from end_io handler when the
> > file is O_SYNC? That would solve the issue for all filesystems...
>
> Well, that would require buy-in from the other file system developers.
> What do the XFS folks think?
I don't think using that code for XFS makes sene. But just like
generic_write_sync there's no reason it can't be added to generic code,
just make sure only generic_file_aio_write/__generic_file_aio_write use
it, but generic_file_buffered_write and generic_file_direct_write stay
clear of it.
|