summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorChris Mason <mason@suse.com>2006-02-01 12:06:50 +0100
committerLinus Torvalds <torvalds@g5.osdl.org>2006-02-01 17:53:26 +0100
commit6ae1ea447d21c4fecf5df8d0e1022461274fb4e8 (patch)
tree1827567dfb6532bad3f72f10e1bb023cdaee212f /fs
parent[PATCH] reiserfs: reiserfs write_ordered_buffers should not oops on dirty non... (diff)
downloadlinux-6ae1ea447d21c4fecf5df8d0e1022461274fb4e8.tar.xz
linux-6ae1ea447d21c4fecf5df8d0e1022461274fb4e8.zip
[PATCH] reiserfs: reiserfs fix journal accounting in journal_transaction_should_end
reiserfs: journal_transaction_should_end should increase the count of blocks allocated so the transaction subsystem can keep new writers from creating a transaction that is too large. Signed-off-by: Chris Mason <mason@suse.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/reiserfs/journal.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/reiserfs/journal.c b/fs/reiserfs/journal.c
index 47c9f432dea5..b7a179560ab4 100644
--- a/fs/reiserfs/journal.c
+++ b/fs/reiserfs/journal.c
@@ -2823,6 +2823,9 @@ int journal_transaction_should_end(struct reiserfs_transaction_handle *th,
journal->j_cnode_free < (journal->j_trans_max * 3)) {
return 1;
}
+ /* protected by the BKL here */
+ journal->j_len_alloc += new_alloc;
+ th->t_blocks_allocated += new_alloc ;
return 0;
}