Re: [PATCH] Fix JBD race in t_forget list handling

From: Stephen C. Tweedie
Date: Mon Jul 11 2005 - 13:51:53 EST


Hi,

On Mon, 2005-07-11 at 16:34, Jan Kara wrote:

> attached patch should close the possible race between
> journal_commit_transaction() and journal_unmap_buffer() (which adds
> buffers to committing transaction's t_forget list) that could leave
> some buffers on transaction's t_forget list (hence leading to an
> assertion failure later when transaction is dropped). The patch is
> against 2.6.13-rc2 kernel. The race was really happening to David Wilk
> <davidwilk@xxxxxxxxx> (thanks for testing) so please apply if you find
> the patch correct.

Indeed we can be adding to the committing transaction's t_forget list
here. The fix looks correct: we're taking the j_list_lock anyway in
that loop for the checkpoint processing, so we're not taking it any more
frequently by grabbing it for the loop condition itself too --- just
holding it a little longer.

--Stephen

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/