diff -Naru a/fs/jbd/checkpoint.c b/fs/jbd/checkpoint.c --- a/fs/jbd/checkpoint.c 2005-12-14 00:35:42 -08:00 +++ b/fs/jbd/checkpoint.c 2005-12-14 00:35:42 -08:00 @@ -339,8 +339,10 @@ } } while (jh != last_jh && !retry); - if (batch_count) + if (batch_count) { __flush_batch(journal, bhs, &batch_count); + retry = 1; + } /* * If someone cleaned up this transaction while we slept, we're # This is a BitKeeper generated diff -Nru style patch. # # ChangeSet # 2005/06/02 15:12:29-07:00 jack@suse.cz # [PATCH] ext3: fix log_do_checkpoint() assertion failure # # Fix possible false assertion failure in log_do_checkpoint(). We might fail # to detect that we actually made a progress when cleaning up the checkpoint # lists if we don't retry after writing something to disk. The patch was # confirmed to fix observed assertion failures for several users. # # When we flushed some buffers we need to retry scanning the list. # Otherwise we can fail to detect our progress. # # Signed-off-by: Jan Kara # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # GIT: 00ea81459c279f14a7b344320a71c94f60f88929 # # fs/jbd/checkpoint.c # 2005/06/02 15:12:29-07:00 jack@suse.cz +3 -1 # # http://linux.bkbits.net:8080/linux-2.6/cset@1.3104.1.1