[Top] [All Lists]

Re: [PATCH] Re-dirty pages on I/O error

To: Lachlan McIlroy <lachlan@xxxxxxx>, xfs-oss <xfs@xxxxxxxxxxx>
Subject: Re: [PATCH] Re-dirty pages on I/O error
From: Lachlan McIlroy <lachlan@xxxxxxx>
Date: Wed, 11 Feb 2009 10:33:29 +1100
In-reply-to: <20090210100129.GN8830@disturbed>
Organization: SGI
References: <4990DCF6.5000900@xxxxxxx> <20090210100129.GN8830@disturbed>
Reply-to: lachlan@xxxxxxx
User-agent: Thunderbird (X11/20081209)
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....

I'll leave it up to you to implement that then Dave since I think you
are the only one who understands your angle of attack.

Meanwhile we have this patch running on customer systems and it's fixed
the problems they were having with orphaned delayed allocations being
left behind due to pages being erroneously invalidated.

<Prev in Thread] Current Thread [Next in Thread>