aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Mahoney <jeffm@suse.com>2008-07-25 04:46:38 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-07-25 13:53:33 -0400
commitf68215c4640a38d66429014e524a627bf572d26a (patch)
tree9880a7adbdcda5dba88fe875520b787555b80802
parent00b441970a0ab48185244300ac7d4e4eb76df692 (diff)
reiserfs: convert j_lock to mutex
j_lock is a semaphore but uses it as if it were a mutex. This patch converts it to a mutex. Signed-off-by: Jeff Mahoney <jeffm@suse.com> Cc: Matthew Wilcox <matthew@wil.cx> Cc: Chris Mason <chris.mason@oracle.com> Cc: Edward Shishkin <edward.shishkin@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--fs/reiserfs/journal.c6
-rw-r--r--include/linux/reiserfs_fs_sb.h2
2 files changed, 4 insertions, 4 deletions
diff --git a/fs/reiserfs/journal.c b/fs/reiserfs/journal.c
index e396b2fa4743..0f7b1e807e60 100644
--- a/fs/reiserfs/journal.c
+++ b/fs/reiserfs/journal.c
@@ -558,13 +558,13 @@ static inline void insert_journal_hash(struct reiserfs_journal_cnode **table,
558static inline void lock_journal(struct super_block *p_s_sb) 558static inline void lock_journal(struct super_block *p_s_sb)
559{ 559{
560 PROC_INFO_INC(p_s_sb, journal.lock_journal); 560 PROC_INFO_INC(p_s_sb, journal.lock_journal);
561 down(&SB_JOURNAL(p_s_sb)->j_lock); 561 mutex_lock(&SB_JOURNAL(p_s_sb)->j_mutex);
562} 562}
563 563
564/* unlock the current transaction */ 564/* unlock the current transaction */
565static inline void unlock_journal(struct super_block *p_s_sb) 565static inline void unlock_journal(struct super_block *p_s_sb)
566{ 566{
567 up(&SB_JOURNAL(p_s_sb)->j_lock); 567 mutex_unlock(&SB_JOURNAL(p_s_sb)->j_mutex);
568} 568}
569 569
570static inline void get_journal_list(struct reiserfs_journal_list *jl) 570static inline void get_journal_list(struct reiserfs_journal_list *jl)
@@ -2837,7 +2837,7 @@ int journal_init(struct super_block *p_s_sb, const char *j_dev_name,
2837 journal->j_last = NULL; 2837 journal->j_last = NULL;
2838 journal->j_first = NULL; 2838 journal->j_first = NULL;
2839 init_waitqueue_head(&(journal->j_join_wait)); 2839 init_waitqueue_head(&(journal->j_join_wait));
2840 sema_init(&journal->j_lock, 1); 2840 mutex_init(&journal->j_mutex);
2841 sema_init(&journal->j_flush_sem, 1); 2841 sema_init(&journal->j_flush_sem, 1);
2842 2842
2843 journal->j_trans_id = 10; 2843 journal->j_trans_id = 10;
diff --git a/include/linux/reiserfs_fs_sb.h b/include/linux/reiserfs_fs_sb.h
index 336ee43ed7d8..49b639b88bac 100644
--- a/include/linux/reiserfs_fs_sb.h
+++ b/include/linux/reiserfs_fs_sb.h
@@ -193,7 +193,7 @@ struct reiserfs_journal {
193 struct buffer_head *j_header_bh; 193 struct buffer_head *j_header_bh;
194 194
195 time_t j_trans_start_time; /* time this transaction started */ 195 time_t j_trans_start_time; /* time this transaction started */
196 struct semaphore j_lock; 196 struct mutex j_mutex;
197 struct semaphore j_flush_sem; 197 struct semaphore j_flush_sem;
198 wait_queue_head_t j_join_wait; /* wait for current transaction to finish before starting new one */ 198 wait_queue_head_t j_join_wait; /* wait for current transaction to finish before starting new one */
199 atomic_t j_jlock; /* lock for j_join_wait */ 199 atomic_t j_jlock; /* lock for j_join_wait */