diff options
author | Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> | 2008-11-06 17:50:21 -0500 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2008-11-06 17:50:21 -0500 |
commit | fb68407b0d9efba962c03f55009c797e22f024bc (patch) | |
tree | b3f33f513969d6f77c5b6a6f71b662057d3440a5 /fs/jbd2/checkpoint.c | |
parent | c3a326a657562dab81acf05aee106dc1fe345eb4 (diff) |
jbd2: Call journal commit callback without holding j_list_lock
Avoid freeing the transaction in __jbd2_journal_drop_transaction() so
the journal commit callback can run without holding j_list_lock, to
avoid lock contention on this spinlock.
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs/jbd2/checkpoint.c')
-rw-r--r-- | fs/jbd2/checkpoint.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/jbd2/checkpoint.c b/fs/jbd2/checkpoint.c index adc08ec875ed..17159cacbd9e 100644 --- a/fs/jbd2/checkpoint.c +++ b/fs/jbd2/checkpoint.c | |||
@@ -682,6 +682,7 @@ int __jbd2_journal_remove_checkpoint(struct journal_head *jh) | |||
682 | safely remove this transaction from the log */ | 682 | safely remove this transaction from the log */ |
683 | 683 | ||
684 | __jbd2_journal_drop_transaction(journal, transaction); | 684 | __jbd2_journal_drop_transaction(journal, transaction); |
685 | kfree(transaction); | ||
685 | 686 | ||
686 | /* Just in case anybody was waiting for more transactions to be | 687 | /* Just in case anybody was waiting for more transactions to be |
687 | checkpointed... */ | 688 | checkpointed... */ |
@@ -756,5 +757,4 @@ void __jbd2_journal_drop_transaction(journal_t *journal, transaction_t *transact | |||
756 | J_ASSERT(journal->j_running_transaction != transaction); | 757 | J_ASSERT(journal->j_running_transaction != transaction); |
757 | 758 | ||
758 | jbd_debug(1, "Dropping transaction %d, all done\n", transaction->t_tid); | 759 | jbd_debug(1, "Dropping transaction %d, all done\n", transaction->t_tid); |
759 | kfree(transaction); | ||
760 | } | 760 | } |