[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.64.0807150913020.21598@devserv.devel.redhat.com>
Date: Tue, 15 Jul 2008 09:16:52 -0400 (EDT)
From: Mikulas Patocka <mpatocka@...hat.com>
To: Andi Kleen <andi@...stfloor.org>
cc: FUJITA Tomonori <fujita.tomonori@....ntt.co.jp>,
davem@...emloft.net, sparclinux@...r.kernel.org,
linux-kernel@...r.kernel.org, jens.axboe@...cle.com
Subject: Re: [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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists