From: Hisashi Hifumi <hifumi.hisashi@oss.ntt.co.jp>
To: Zach Brown <zach.brown@oracle.com>
Cc: akpm@linux-foundation.org, linux-kernel@vger.kernel.org,
linux-fsdevel@vger.kernel.org,
Chris Mason <chris.mason@oracle.com>,
Badari Pulavarty <pbadari@us.ibm.com>
Subject: Re: [PATCH] dio: falling through to buffered I/O when invalidationof a page fails
Date: Wed, 12 Dec 2007 16:51:24 +0900 [thread overview]
Message-ID: <6.0.0.20.2.20071212132928.00388ac0@172.19.0.2> (raw)
In-Reply-To: <475F32B0.20107@oracle.com>
>
>>
>> Past discussion about this issue is as follows.
>> http://marc.info/?t=119343431200004&r=1&w=2
>> http://marc.info/?t=112656762800002&r=1&w=2
>>
>> 2, invalidate_inode_pages2_range() sets ret=-EIO when
>> invalidate_complete_page2()
>> fails, but this ret is cleared if do_launder_page() succeed on a page of
>> next index.
>
>Oops. That's too bad. So maybe we should fix it by not stomping on
>that return code?
>
> ret2 = do_launder()
> if (ret2 == 0)
> ret2 = invalidate()
> if (ret == 0)
> ret = ret2
>
>I'd be surprised if we ever wanted to mask an -EIO when later pages
>laundered successfully.
This can preserve ret of -EIO. But it cannot be distinguished between
the error of invalidation and other error only by this fix.
>> I solved problems above by introducing invalidate_inode_pages3_range()
>> and falling
>> through to buffered I/O when invalidation of a page failed.
>
>Well, I like the idea of more intelligently dealing with the known
>problem between dio and ext3. I'm not sure that falling back to
>buffered is right.
In the past discussion above, it was said that dio was a sort of best
effort function. So dio falls back to buffered IO when writing to hall, I think.
My idea is that this notion applies to this issue.
>
>> We can distinguish between failure of page invalidation and other errors
>> with the return value of invalidate_inode_pages3_range().
>
>I'm not sure duplicating the invalidation loop into a new function is
>the right thing. Maybe we'd just tweak inode_pages2 to indicate to the
>caller the specific failing circumstances somehow. Maybe.
It will be better that adding one parameter to invalidate_inode_pages2_range so
that caller can deal with a number of cases.
next prev parent reply other threads:[~2007-12-12 7:52 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-10 7:52 [PATCH] dio: falling through to buffered I/O when invalidation of a page fails Hisashi Hifumi
2007-12-12 1:00 ` Zach Brown
2007-12-12 7:51 ` Hisashi Hifumi [this message]
2007-12-14 18:59 ` Badari Pulavarty
2007-12-14 19:15 ` Zach Brown
2007-12-17 2:38 ` [PATCH] dio: falling through to buffered I/O when invalidationof " Hisashi Hifumi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6.0.0.20.2.20071212132928.00388ac0@172.19.0.2 \
--to=hifumi.hisashi@oss.ntt.co.jp \
--cc=akpm@linux-foundation.org \
--cc=chris.mason@oracle.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbadari@us.ibm.com \
--cc=zach.brown@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).