jbd2: cleanup needed free block estimates when starting a transaction
authorJan Kara <jack@suse.cz>
Tue, 4 Jun 2013 16:12:57 +0000 (12:12 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 4 Jun 2013 16:12:57 +0000 (12:12 -0400)
commit76c39904561004ac8675f858a290129e439d5168
tree46b2c2800ffbad5dd2ebd4ceb66893414630df2b
parent2f387f849b6a5be5b4b914c43a8af0406279db11
jbd2: cleanup needed free block estimates when starting a transaction

__jbd2_log_space_left() and jbd_space_needed() were kind of odd.
jbd_space_needed() accounted also credits needed for currently
committing transaction while it didn't account for credits needed for
control blocks.  __jbd2_log_space_left() then accounted for control
blocks as a fraction of free space.  Since results of these two
functions are always only compared against each other, this works
correct but is somewhat strange.  Move the estimates so that
jbd_space_needed() returns number of blocks needed for a transaction
including control blocks and __jbd2_log_space_left() returns free
space in the journal (with the committing transaction already
subtracted).  Rename functions to jbd2_log_space_left() and
jbd2_space_needed() while we are changing them.

Reviewed-by: Zheng Liu <wenqing.lz@taobao.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/jbd2/checkpoint.c
fs/jbd2/journal.c
fs/jbd2/transaction.c
include/linux/jbd2.h