jbd: don't give up looking for space so easily in __log_wait_for_space
authorTheodore Ts'o <tytso@mit.edu>
Fri, 7 Nov 2008 03:37:59 +0000 (22:37 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 7 Nov 2008 03:37:59 +0000 (22:37 -0500)
commite219cca082f52e7dfea41f3be264b7b5eb204227
tree6d67c967064eed255b602626348e78119f84fb8b
parent45beca08dd8b6d6a65c5ffd730af2eac7a2c7a03
jbd: don't give up looking for space so easily in __log_wait_for_space

Commit be07c4ed 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 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 the bug reported by Meelis Roos at:
http://bugzilla.kernel.org/show_bug.cgi?id=11937

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