[PATCH] Re-dirty pages on I/O error
Christoph Hellwig
hch at infradead.org
Sun Feb 15 14:05:07 CST 2009
On Tue, Feb 10, 2009 at 09:01:29PM +1100, Dave Chinner wrote:
> On Tue, Feb 10, 2009 at 12:48:38PM +1100, Lachlan McIlroy wrote:
> > [This patch seems to have slipped through the proverbial crack.]
> >
> > If we get an error in xfs_page_state_convert() - and it's not EAGAIN - then
> > we throw away the dirty page without converting the delayed allocation. This
> > leaves delayed allocations that can never be removed and confuses code that
> > expects a flush of the file to clear them. We need to re-dirty the page on
> > error so we can try again later or report that the flush failed.
>
> As discussed previously, the fix that is needed in the page
> invalidation path. i.e. the page invalidate path clears the
> buffer_delay() flag (via discard_buffer) before we get to
> ->releasepage and so releasepage fails to convert the delalloc
> extent before tossing the page....
And we need to get started on that fix rather sooner than later.
Any chance to get some testcase extrace from the scenarios at those
customer sites?
More information about the xfs
mailing list