| From 4fccd9bc20dd129ec9ce3095edbade303c5cea63 Mon Sep 17 00:00:00 2001 |
| From: Jan Kara <jack@suse.cz> |
| Date: Tue, 5 Nov 2019 17:44:19 +0100 |
| Subject: [PATCH] jbd2: Fix statistics for the number of logged blocks |
| |
| commit 015c6033068208d6227612c878877919f3fcf6b6 upstream. |
| |
| jbd2 statistics counting number of blocks logged in a transaction was |
| wrong. It didn't count the commit block and more importantly it didn't |
| count revoke descriptor blocks. Make sure these get properly counted. |
| |
| Reviewed-by: Theodore Ts'o <tytso@mit.edu> |
| Signed-off-by: Jan Kara <jack@suse.cz> |
| Link: https://lore.kernel.org/r/20191105164437.32602-13-jack@suse.cz |
| Signed-off-by: Theodore Ts'o <tytso@mit.edu> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c |
| index 668f9021cf11..5443697164d0 100644 |
| --- a/fs/jbd2/commit.c |
| +++ b/fs/jbd2/commit.c |
| @@ -727,7 +727,6 @@ void jbd2_journal_commit_transaction(journal_t *journal) |
| submit_bh(REQ_OP_WRITE, REQ_SYNC, bh); |
| } |
| cond_resched(); |
| - stats.run.rs_blocks_logged += bufs; |
| |
| /* Force a new descriptor to be generated next |
| time round the loop. */ |
| @@ -814,6 +813,7 @@ void jbd2_journal_commit_transaction(journal_t *journal) |
| if (unlikely(!buffer_uptodate(bh))) |
| err = -EIO; |
| jbd2_unfile_log_bh(bh); |
| + stats.run.rs_blocks_logged++; |
| |
| /* |
| * The list contains temporary buffer heads created by |
| @@ -859,6 +859,7 @@ void jbd2_journal_commit_transaction(journal_t *journal) |
| BUFFER_TRACE(bh, "ph5: control buffer writeout done: unfile"); |
| clear_buffer_jwrite(bh); |
| jbd2_unfile_log_bh(bh); |
| + stats.run.rs_blocks_logged++; |
| __brelse(bh); /* One for getblk */ |
| /* AKPM: bforget here */ |
| } |
| @@ -880,6 +881,7 @@ void jbd2_journal_commit_transaction(journal_t *journal) |
| } |
| if (cbh) |
| err = journal_wait_on_commit_record(journal, cbh); |
| + stats.run.rs_blocks_logged++; |
| if (jbd2_has_feature_async_commit(journal) && |
| journal->j_flags & JBD2_BARRIER) { |
| blkdev_issue_flush(journal->j_dev, GFP_NOFS, NULL); |
| -- |
| 2.7.4 |
| |