Skip to content

Commit

Permalink
[PATCH] ext3: fix log_do_checkpoint() assertion failure
Browse files Browse the repository at this point in the history
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 <jack@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Jan Kara authored and Linus Torvalds committed Jun 2, 2005
1 parent 1e86d1c commit 00ea814
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion fs/jbd/checkpoint.c
Original file line number Diff line number Diff line change
Expand Up @@ -339,8 +339,10 @@ int log_do_checkpoint(journal_t *journal)
}
} 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
Expand Down

0 comments on commit 00ea814

Please sign in to comment.