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