Re: [RFC][PATCH] ext3: don't read inode block if the buffer has a write error

Hidehiro Kawai
2008-06-24T13:04:48Z

Hi all,

Thank you for precious comments.

Linus Torvalds wrote:

>
> On Tue, 24 Jun 2008, Nick Piggin wrote:
>
>>What you want to do is not insane, but the way it is currently being
>>done is. As I said, just clearing the uptodate bit might blow up your
>>kernel pretty quickly from assertions in the vm. It should be going
>>through the whole truncate or invalidate page machinery in order to
>>do that.
>
> Fair enough.
>
> I would not mind, for example, leaving the uptodate bit, but removing it
> from the radix tree or something like that (ie turning it into an
> anonymous page for a page-cache page, just removing it from the
> hash-queues for a buffer_head).

If we move page caches with errors to another radix tree instead of
just removing, we may be able to do special handlings: rewrite once,
or check the page caches and get rid of them from user space, and so on.

> Of course, that could cause other problems (eg any VM assertions that
> shared mappings only contain non-anon pages).

As Jan and Nick stated, this seems to need a great effort, but I think
it is worthwhile to do.

Thanks,
--
Hidehiro Kawai
Hitachi, Systems Development Laboratory
Linux Technology Center