Hello, I think I have found a possible cause of assertion failure in journal_commit_buffer() on line 793 (b_next_transaction == NULL) (which was reported about two times as I remember). And I think the problem is just a few lines below in cond_resched_lock(&journal->j_list_lock); The problem is following: we are processing t_forget list of a committing transaction. On this forget list are among other buffers also bitmaps and buffers that are freed by this transaction. Now if bitmap buffer is processed first, we switch to new bitmap (hence the buffer freed by this transaction is again available for allocation). If we reschedule on that cond_resched_lock() and in the meantime someone allocates the buffer, we later fail with that assertion failure. Quick and easy fix to the problem is to just remove that cond_resched_lock(). But I guess that may harm latency. Another solution would be to always keep bitmap buffers in the end of forget list (or create separate list for bitmap buffers) but that sounds a bit hacky. Any other idea? Bye Honza -- Jan Kara <jack@xxxxxxx> SuSE CR Labs - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html