Re: [PATCH 1/5] jbd: strictly check for write errors on data buffers

Theodore Tso
2008-06-05T14:30:22Z

On Thu, Jun 05, 2008 at 08:33:27PM +0900, Hidehiro Kawai wrote:
>
> My patch doesn't change the policy. JBD aborts the journal when
> it detects I/O error in file data since 2.6.11. Perhaps this patch:
> http://marc.info/?l=linux-kernel&m=110483888632225
> I just added missing error checkings.
>

Looking at the code paths touched by patch you referenced, you are
correct. And Andrew even signed off on it. :-)

But if someone was only examining the patch, it wasn't obvious that
the journal was getting aborted when the JBD layer was forcing buffers
from t_sync_datalist to disk. So I suspect the change went in without
proper consideration of the net effect. You just called it out
explicitly in the subject line, which caused Andrew to ask some good
questions; questions that weren't asked in 2005.

> I agree. I understood that there is a case where we don't want to
> make the fs read-only when writing file data failed. OTOH there are
> people who want to make the fs read-only to avoid the damage from
> expanding. Introducing the tunable would be better.
> I'm going to send a patch to make this behavior tunable if some of you
> agree on this way.

Note that doing this right may be tricky, since in the case where we
aren't aborting the journal, we need to set the appropriate flags in
the page cache so that when the user calls fsync() or close(), that
they get the EIO error.

- Ted