diff options
Diffstat (limited to 'fs/jbd2/commit.c')
| -rw-r--r-- | fs/jbd2/commit.c | 59 |
1 files changed, 28 insertions, 31 deletions
diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c index 26d991ddc1e6..d4cfd6d2779e 100644 --- a/fs/jbd2/commit.c +++ b/fs/jbd2/commit.c | |||
| @@ -410,10 +410,10 @@ void jbd2_journal_commit_transaction(journal_t *journal) | |||
| 410 | if (commit_transaction->t_synchronous_commit) | 410 | if (commit_transaction->t_synchronous_commit) |
| 411 | write_op = WRITE_SYNC_PLUG; | 411 | write_op = WRITE_SYNC_PLUG; |
| 412 | trace_jbd2_commit_locking(journal, commit_transaction); | 412 | trace_jbd2_commit_locking(journal, commit_transaction); |
| 413 | stats.u.run.rs_wait = commit_transaction->t_max_wait; | 413 | stats.run.rs_wait = commit_transaction->t_max_wait; |
| 414 | stats.u.run.rs_locked = jiffies; | 414 | stats.run.rs_locked = jiffies; |
| 415 | stats.u.run.rs_running = jbd2_time_diff(commit_transaction->t_start, | 415 | stats.run.rs_running = jbd2_time_diff(commit_transaction->t_start, |
| 416 | stats.u.run.rs_locked); | 416 | stats.run.rs_locked); |
| 417 | 417 | ||
| 418 | spin_lock(&commit_transaction->t_handle_lock); | 418 | spin_lock(&commit_transaction->t_handle_lock); |
| 419 | while (commit_transaction->t_updates) { | 419 | while (commit_transaction->t_updates) { |
| @@ -486,9 +486,9 @@ void jbd2_journal_commit_transaction(journal_t *journal) | |||
| 486 | jbd2_journal_switch_revoke_table(journal); | 486 | jbd2_journal_switch_revoke_table(journal); |
| 487 | 487 | ||
| 488 | trace_jbd2_commit_flushing(journal, commit_transaction); | 488 | trace_jbd2_commit_flushing(journal, commit_transaction); |
| 489 | stats.u.run.rs_flushing = jiffies; | 489 | stats.run.rs_flushing = jiffies; |
| 490 | stats.u.run.rs_locked = jbd2_time_diff(stats.u.run.rs_locked, | 490 | stats.run.rs_locked = jbd2_time_diff(stats.run.rs_locked, |
| 491 | stats.u.run.rs_flushing); | 491 | stats.run.rs_flushing); |
| 492 | 492 | ||
| 493 | commit_transaction->t_state = T_FLUSH; | 493 | commit_transaction->t_state = T_FLUSH; |
| 494 | journal->j_committing_transaction = commit_transaction; | 494 | journal->j_committing_transaction = commit_transaction; |
| @@ -523,11 +523,11 @@ void jbd2_journal_commit_transaction(journal_t *journal) | |||
| 523 | spin_unlock(&journal->j_state_lock); | 523 | spin_unlock(&journal->j_state_lock); |
| 524 | 524 | ||
| 525 | trace_jbd2_commit_logging(journal, commit_transaction); | 525 | trace_jbd2_commit_logging(journal, commit_transaction); |
| 526 | stats.u.run.rs_logging = jiffies; | 526 | stats.run.rs_logging = jiffies; |
| 527 | stats.u.run.rs_flushing = jbd2_time_diff(stats.u.run.rs_flushing, | 527 | stats.run.rs_flushing = jbd2_time_diff(stats.run.rs_flushing, |
| 528 | stats.u.run.rs_logging); | 528 | stats.run.rs_logging); |
| 529 | stats.u.run.rs_blocks = commit_transaction->t_outstanding_credits; | 529 | stats.run.rs_blocks = commit_transaction->t_outstanding_credits; |
| 530 | stats.u.run.rs_blocks_logged = 0; | 530 | stats.run.rs_blocks_logged = 0; |
| 531 | 531 | ||
| 532 | J_ASSERT(commit_transaction->t_nr_buffers <= | 532 | J_ASSERT(commit_transaction->t_nr_buffers <= |
| 533 | commit_transaction->t_outstanding_credits); | 533 | commit_transaction->t_outstanding_credits); |
| @@ -695,7 +695,7 @@ start_journal_io: | |||
| 695 | submit_bh(write_op, bh); | 695 | submit_bh(write_op, bh); |
| 696 | } | 696 | } |
| 697 | cond_resched(); | 697 | cond_resched(); |
| 698 | stats.u.run.rs_blocks_logged += bufs; | 698 | stats.run.rs_blocks_logged += bufs; |
| 699 | 699 | ||
| 700 | /* Force a new descriptor to be generated next | 700 | /* Force a new descriptor to be generated next |
| 701 | time round the loop. */ | 701 | time round the loop. */ |
| @@ -988,33 +988,30 @@ restart_loop: | |||
| 988 | J_ASSERT(commit_transaction->t_state == T_COMMIT); | 988 | J_ASSERT(commit_transaction->t_state == T_COMMIT); |
| 989 | 989 | ||
| 990 | commit_transaction->t_start = jiffies; | 990 | commit_transaction->t_start = jiffies; |
| 991 | stats.u.run.rs_logging = jbd2_time_diff(stats.u.run.rs_logging, | 991 | stats.run.rs_logging = jbd2_time_diff(stats.run.rs_logging, |
| 992 | commit_transaction->t_start); | 992 | commit_transaction->t_start); |
| 993 | 993 | ||
| 994 | /* | 994 | /* |
| 995 | * File the transaction for history | 995 | * File the transaction statistics |
| 996 | */ | 996 | */ |
| 997 | stats.ts_type = JBD2_STATS_RUN; | ||
| 998 | stats.ts_tid = commit_transaction->t_tid; | 997 | stats.ts_tid = commit_transaction->t_tid; |
| 999 | stats.u.run.rs_handle_count = commit_transaction->t_handle_count; | 998 | stats.run.rs_handle_count = commit_transaction->t_handle_count; |
| 1000 | spin_lock(&journal->j_history_lock); | 999 | trace_jbd2_run_stats(journal->j_fs_dev->bd_dev, |
| 1001 | memcpy(journal->j_history + journal->j_history_cur, &stats, | 1000 | commit_transaction->t_tid, &stats.run); |
| 1002 | sizeof(stats)); | ||
| 1003 | if (++journal->j_history_cur == journal->j_history_max) | ||
| 1004 | journal->j_history_cur = 0; | ||
| 1005 | 1001 | ||
| 1006 | /* | 1002 | /* |
| 1007 | * Calculate overall stats | 1003 | * Calculate overall stats |
| 1008 | */ | 1004 | */ |
| 1005 | spin_lock(&journal->j_history_lock); | ||
| 1009 | journal->j_stats.ts_tid++; | 1006 | journal->j_stats.ts_tid++; |
| 1010 | journal->j_stats.u.run.rs_wait += stats.u.run.rs_wait; | 1007 | journal->j_stats.run.rs_wait += stats.run.rs_wait; |
| 1011 | journal->j_stats.u.run.rs_running += stats.u.run.rs_running; | 1008 | journal->j_stats.run.rs_running += stats.run.rs_running; |
| 1012 | journal->j_stats.u.run.rs_locked += stats.u.run.rs_locked; | 1009 | journal->j_stats.run.rs_locked += stats.run.rs_locked; |
| 1013 | journal->j_stats.u.run.rs_flushing += stats.u.run.rs_flushing; | 1010 | journal->j_stats.run.rs_flushing += stats.run.rs_flushing; |
| 1014 | journal->j_stats.u.run.rs_logging += stats.u.run.rs_logging; | 1011 | journal->j_stats.run.rs_logging += stats.run.rs_logging; |
| 1015 | journal->j_stats.u.run.rs_handle_count += stats.u.run.rs_handle_count; | 1012 | journal->j_stats.run.rs_handle_count += stats.run.rs_handle_count; |
| 1016 | journal->j_stats.u.run.rs_blocks += stats.u.run.rs_blocks; | 1013 | journal->j_stats.run.rs_blocks += stats.run.rs_blocks; |
| 1017 | journal->j_stats.u.run.rs_blocks_logged += stats.u.run.rs_blocks_logged; | 1014 | journal->j_stats.run.rs_blocks_logged += stats.run.rs_blocks_logged; |
| 1018 | spin_unlock(&journal->j_history_lock); | 1015 | spin_unlock(&journal->j_history_lock); |
| 1019 | 1016 | ||
| 1020 | commit_transaction->t_state = T_FINISHED; | 1017 | commit_transaction->t_state = T_FINISHED; |
