[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1218104494.15342.171.camel@think.oraclecorp.com>
Date: Thu, 07 Aug 2008 06:21:34 -0400
From: Chris Mason <chris.mason@...cle.com>
To: Hisashi Hifumi <hifumi.hisashi@....ntt.co.jp>
Cc: Mingming Cao <cmm@...ibm.com>, Jan Kara <jack@...e.cz>,
Andrew Morton <akpm@...ux-foundation.org>,
linux-ext4@...r.kernel.org, linux-fsdevel@...r.kernel.org
Subject: Re: [PATCH] jbd jbd2: fix dio write returning
EIOwhentry_to_release_page fails
On Thu, 2008-08-07 at 12:15 +0900, Hisashi Hifumi wrote:
> >/*
> > * This is like invalidate_complete_page(), except it ignores the page's
> > * refcount. We do this because invalidate_inode_pages2() needs
> >stronger
> > * invalidation guarantees, and cannot afford to leave pages behind
> >because
> > * shrink_page_list() has a temp ref on them, or because they're
> >transiently
> > * sitting in the lru_cache_add() pagevecs.
> > */
> >
> >
> >I am wondering why we need stronger invalidate hurantees for DIO->
> >invalidate_inode_pages_range(),which force the page being removed from
> >page cache? In case of bh is busy due to ext3 writeout,
> >journal_try_to_free_buffers() could return different error number(EBUSY)
> >to try_to_releasepage() (instead of EIO). In that case, could we just
> >leave the page in the cache, clean pageuptodate() (to force later buffer
> >read to read from disk) and then invalidate_complete_page2() return
> >successfully? Any issue with this way?
>
> My idea is that journal_try_to_free_buffers returns EBUSY if it fails due to
> bh busy, and dio write falls back to buffered write. This is easy to fix.
>
>
What about the invalidates done after the DIO has already run
non-buffered?
-chris
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists