it will not be missed. fs/jbd/journal.c | 1 - include/linux/jbd.h | 30 +++--------------------------- 2 files changed, 3 insertions(+), 28 deletions(-) diff -puN fs/jbd/journal.c~jbd-440-remove-lock_journal fs/jbd/journal.c --- 25/fs/jbd/journal.c~jbd-440-remove-lock_journal 2003-05-25 17:46:27.000000000 -0700 +++ 25-akpm/fs/jbd/journal.c 2003-05-25 17:46:27.000000000 -0700 @@ -630,7 +630,6 @@ static journal_t * journal_init_common ( init_waitqueue_head(&journal->j_wait_updates); init_MUTEX(&journal->j_barrier); init_MUTEX(&journal->j_checkpoint_sem); - init_MUTEX(&journal->j_sem); spin_lock_init(&journal->j_revoke_lock); spin_lock_init(&journal->j_list_lock); spin_lock_init(&journal->j_state_lock); diff -puN include/linux/jbd.h~jbd-440-remove-lock_journal include/linux/jbd.h --- 25/include/linux/jbd.h~jbd-440-remove-lock_journal 2003-05-25 17:46:27.000000000 -0700 +++ 25-akpm/include/linux/jbd.h 2003-05-25 17:46:27.000000000 -0700 @@ -593,7 +593,6 @@ struct transaction_s * @j_wait_commit: Wait queue to trigger commit * @j_wait_updates: Wait queue to wait for updates to complete * @j_checkpoint_sem: Semaphore for locking against concurrent checkpoints - * @j_sem: The main journal lock, used by lock_journal() * @j_head: Journal head - identifies the first unused block in the journal * @j_tail: Journal tail - identifies the oldest still-used block in the * journal. @@ -700,9 +699,6 @@ struct journal_s /* Semaphore for locking against concurrent checkpoints */ struct semaphore j_checkpoint_sem; - /* The main journal lock, used by lock_journal() */ - struct semaphore j_sem; - /* * Journal head: identifies the first unused block in the journal. * [j_state_lock] @@ -867,34 +863,14 @@ extern void __wait_on_journal (journal_ /* * Journal locking. * - * We need to lock the journal during transaction state changes so that - * nobody ever tries to take a handle on the running transaction while - * we are in the middle of moving it to the commit phase. + * We need to lock the journal during transaction state changes so that nobody + * ever tries to take a handle on the running transaction while we are in the + * middle of moving it to the commit phase. j_state_lock does this. * * Note that the locking is completely interrupt unsafe. We never touch * journal structures from interrupts. - * - * In 2.2, the BKL was required for lock_journal. This is no longer - * the case. */ -static inline void lock_journal(journal_t *journal) -{ - down(&journal->j_sem); -} - -/* This returns zero if we acquired the semaphore */ -static inline int try_lock_journal(journal_t * journal) -{ - return down_trylock(&journal->j_sem); -} - -static inline void unlock_journal(journal_t * journal) -{ - up(&journal->j_sem); -} - - static inline handle_t *journal_current_handle(void) { return current->journal_info; _