Since jbd2_journal_wait_updates() uses waitq based on t_updates atomic_t variable. So from code review it looks like we don't need to use t_handle_lock spinlock for checking t_updates value. Hence this patch gets rid of the spinlock protection in jbd2_journal_wait_updates() Signed-off-by: Ritesh Harjani <riteshh@xxxxxxxxxxxxx> --- include/linux/jbd2.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h index 34b051aa9009..9bef47622b9d 100644 --- a/include/linux/jbd2.h +++ b/include/linux/jbd2.h @@ -1768,22 +1768,18 @@ static inline void jbd2_journal_wait_updates(journal_t *journal) if (!commit_transaction) return; - spin_lock(&commit_transaction->t_handle_lock); while (atomic_read(&commit_transaction->t_updates)) { DEFINE_WAIT(wait); prepare_to_wait(&journal->j_wait_updates, &wait, TASK_UNINTERRUPTIBLE); if (atomic_read(&commit_transaction->t_updates)) { - spin_unlock(&commit_transaction->t_handle_lock); write_unlock(&journal->j_state_lock); schedule(); write_lock(&journal->j_state_lock); - spin_lock(&commit_transaction->t_handle_lock); } finish_wait(&journal->j_wait_updates, &wait); } - spin_unlock(&commit_transaction->t_handle_lock); } /* -- 2.31.1