On Fri, 2003-03-21 at 06:48, Andrew Morton wrote:
> It goes BUG in try_to_free_buffers().
>
> We really should fix this up for other reasons, probably by making ext3's
> per-page truncate operations wait on commit, and be more aggressive about
> pulling the page's buffers off the transaction at truncate time.
Ouch.
> The same thing _could_ happen with other filesystems; not too sure about
> that.
XFS used to have synchronous truncates, for similar sorts of reasons.
It was dog slow for unlinks. They worked pretty hard to fix that; I'd
really like to avoid adding extra synchronicity to ext3 in this case.
Pulling buffers off the transaction more aggressively would certainly be
worth looking at. Trouble is, if a truncate transaction on disk gets
interrupted by a crash, you really do have to be able to undo it, so you
simply don't have the luxury of throwing the buffers away until a commit
has occurred (unless you're in writeback mode.)
--Stephen
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/