]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
jbd2: increase maximum transaction size
authorJan Kara <jack@suse.cz>
Mon, 1 Jul 2024 13:28:00 +0000 (15:28 +0200)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 9 Jul 2024 03:59:37 +0000 (23:59 -0400)
Originally, we were quite conservative in limiting maximum transaction
size to a quarter of the journal because we were not accounting
transaction descriptor and revoke blocks. These days we do properly
account them and reserve space for them from the total transaction
credits. Thus there's no need to be so conservative and we can increase
the maximum transaction size to one third of the journal (even half
should work fine in principle but the performance will likely suffer in
that case). This also fixes failures to grow filesystems with tiny
journals.

Link: CA+hUFcuGs04JHZ_WzA1zGN57+ehL2qmHOt5a7RMpo+rv6Vyxtw@mail.gmail.com
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Zhang Yi <yi.zhang@huawei.com>
Link: https://patch.msgid.link/20240701132800.7158-1-jack@suse.cz
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/jbd2/journal.c

index 25d373fac2f2fb3706d2827409311b91cb50e764..1ebf2393bfb7627ab4ca946fe507edc36dab4aff 100644 (file)
@@ -1429,7 +1429,7 @@ static int journal_revoke_records_per_block(journal_t *journal)
 
 static int jbd2_journal_get_max_txn_bufs(journal_t *journal)
 {
-       return (journal->j_total_len - journal->j_fc_wbufsize) / 4;
+       return (journal->j_total_len - journal->j_fc_wbufsize) / 3;
 }
 
 /*