提交 f68215c4 编写于 作者: J Jeff Mahoney 提交者: Linus Torvalds

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: NJeff 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: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 00b44197
...@@ -558,13 +558,13 @@ static inline void insert_journal_hash(struct reiserfs_journal_cnode **table, ...@@ -558,13 +558,13 @@ static inline void insert_journal_hash(struct reiserfs_journal_cnode **table,
static inline void lock_journal(struct super_block *p_s_sb) static inline void lock_journal(struct super_block *p_s_sb)
{ {
PROC_INFO_INC(p_s_sb, journal.lock_journal); PROC_INFO_INC(p_s_sb, journal.lock_journal);
down(&SB_JOURNAL(p_s_sb)->j_lock); mutex_lock(&SB_JOURNAL(p_s_sb)->j_mutex);
} }
/* unlock the current transaction */ /* unlock the current transaction */
static inline void unlock_journal(struct super_block *p_s_sb) static inline void unlock_journal(struct super_block *p_s_sb)
{ {
up(&SB_JOURNAL(p_s_sb)->j_lock); mutex_unlock(&SB_JOURNAL(p_s_sb)->j_mutex);
} }
static inline void get_journal_list(struct reiserfs_journal_list *jl) static 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,7 +2837,7 @@ int journal_init(struct super_block *p_s_sb, const char *j_dev_name,
journal->j_last = NULL; journal->j_last = NULL;
journal->j_first = NULL; journal->j_first = NULL;
init_waitqueue_head(&(journal->j_join_wait)); init_waitqueue_head(&(journal->j_join_wait));
sema_init(&journal->j_lock, 1); mutex_init(&journal->j_mutex);
sema_init(&journal->j_flush_sem, 1); sema_init(&journal->j_flush_sem, 1);
journal->j_trans_id = 10; journal->j_trans_id = 10;
......
...@@ -193,7 +193,7 @@ struct reiserfs_journal { ...@@ -193,7 +193,7 @@ struct reiserfs_journal {
struct buffer_head *j_header_bh; struct buffer_head *j_header_bh;
time_t j_trans_start_time; /* time this transaction started */ time_t j_trans_start_time; /* time this transaction started */
struct semaphore j_lock; struct mutex j_mutex;
struct semaphore j_flush_sem; struct semaphore j_flush_sem;
wait_queue_head_t j_join_wait; /* wait for current transaction to finish before starting new one */ wait_queue_head_t j_join_wait; /* wait for current transaction to finish before starting new one */
atomic_t j_jlock; /* lock for j_join_wait */ atomic_t j_jlock; /* lock for j_join_wait */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册