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>
This commit is contained in:
parent
00b441970a
commit
f68215c464
@ -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,
|
|||||||
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 {
|
|||||||
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 */
|
||||||
|
Loading…
Reference in New Issue
Block a user