lkml.org 
[lkml]   [2008]   [Jul]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [SUGGESTION]: drop virtual merge accounting in I/O requests
On Tue, 15 Jul 2008, Andi Kleen wrote:

> Mikulas Patocka wrote:
>>>> BTW. what should the block device driver do when it receives a mapping
>>>> error? (if it aborts the request and it was write request, there will be
>>>> data corruption).
>>>
>>> I'm not sure how a aborted request can corrupt data on disk.
>>
>> Writes are done by an async daemon and no one checks for their
>> completion status. If there are three writes to directory, inode table
>> and inode bitmap and one of these writes fail, there's no code to undo
>> the other two. So the filesystem will be corrupted on write failure.
>
> Normally journaling in ordered mode takes care of that. The transaction
> is not committed until all earlier data has been successfully written.

And if there was write error, then what happens? Retry? Blocking of any
further updates?

> And even the other fs typically turn the file system read only
> on IO error to prevent further corruption.

There is no interface how filesystem could query that buffer marked with
mark_buffer_dirty was not written. Or is there?

Mikulas


\
 
 \ /
  Last update: 2008-07-15 15:19    [W:0.093 / U:0.428 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site