jbd2: don't give up looking for space so easily in __jbd2_log_wait_for_space
commit8c3f25d8950c3e9fe6c9849f88679b3f2a071550
authorTheodore Ts'o <tytso@mit.edu>
Fri, 7 Nov 2008 03:38:07 +0000 (6 22:38 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 7 Nov 2008 03:38:07 +0000 (6 22:38 -0500)
tree61b51da53175a5dafb3607bdc04609d04370d74c
parente219cca082f52e7dfea41f3be264b7b5eb204227
jbd2: don't give up looking for space so easily in __jbd2_log_wait_for_space

Commit 23f8b79e introducd a regression because it assumed that if
there were no transactions ready to be checkpointed, that no progress
could be made on making space available in the journal, and so the
journal should be aborted.  This assumption is false; it could be the
case that simply calling jbd2_cleanup_journal_tail() will recover the
necessary space, or, for small journals, the currently committing
transaction could be responsible for chewing up the required space in
the log, so we need to wait for the currently committing transaction
to finish before trying to force a checkpoint operation.

This patch fixes a bug reported by Mihai Harpau at:
https://bugzilla.redhat.com/show_bug.cgi?id=469582

This patch fixes a bug reported by François Valenduc at:
http://bugzilla.kernel.org/show_bug.cgi?id=11840

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Cc: Duane Griffin <duaneg@dghda.com>
Cc: Toshiyuki Okajima <toshi.okajima@jp.fujitsu.com>
fs/jbd2/checkpoint.c