Re: [PATCH 1/7] block: Add block_flush_device()

Eric Sandeen
2009-03-31T16:24:00Z

Mark Lord wrote:
> Jens Axboe wrote:
>> On Mon, Mar 30 2009, Linus Torvalds wrote:
>>> On Mon, 30 Mar 2009, Jens Axboe wrote:
>>>> Sorry, I just don't see much point to doing it this way instead. So now
>>>> the fs will have to check a queue bit after it has issued the flush, how
>>>> is that any better than having the 'error' returned directly?
>>> No.
>>>
>>> Now the fs SHOULD NEVER CHECK AT ALL.
>>>
>>> Either it did the ordering, or the FS cannot do anything about it.
>>>
>>> That's the point. EOPNOTSUPP is n ot a useful error message. You can't
>>> _do_ anything about it.
>> My point is that some file systems may or may not have different paths
>> or optimizations depending on whether barriers are enabled and working
>> or not. Apparently that's just reiserfs and Chris says we can remove it,
>> so it is probably a moot point.
> ..
>
> XFS appears to have something along those lines.
> I believe it tries to disable the drive write caches
> if it discovers that it cannot do cache flushes.

No, it just stops issuing barriers if the initial mount-time test finds
that they're not supported. ext3/4/reiserfs do similar.

> I'll check next time my MythTV box boots up.
> It has a RAID0 under XFS, and the md raid0 code doesn't
> appear to pass the cache flushes to libata for raid0,
> so XFS complains and tries to turn off the write caches.

doesn't touch write caches; just complains and stops issuing barriers.

> And I have a script to damn well turn them back ON again
> after it does so. Stupid thing tries to override user policy again.

It does not do this.

-Eric