diff options
Diffstat (limited to 'fs/reiserfs')
-rw-r--r-- | fs/reiserfs/journal.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/fs/reiserfs/journal.c b/fs/reiserfs/journal.c index ffb7f50abc2f..e9a972bd0323 100644 --- a/fs/reiserfs/journal.c +++ b/fs/reiserfs/journal.c | |||
@@ -566,11 +566,9 @@ static inline void insert_journal_hash(struct reiserfs_journal_cnode **table, | |||
566 | static inline void reiserfs_mutex_lock_safe(struct mutex *m, | 566 | static inline void reiserfs_mutex_lock_safe(struct mutex *m, |
567 | struct super_block *s) | 567 | struct super_block *s) |
568 | { | 568 | { |
569 | while (!mutex_trylock(m)) { | 569 | reiserfs_write_unlock(s); |
570 | reiserfs_write_unlock(s); | 570 | mutex_lock(m); |
571 | schedule(); | 571 | reiserfs_write_lock(s); |
572 | reiserfs_write_lock(s); | ||
573 | } | ||
574 | } | 572 | } |
575 | 573 | ||
576 | /* lock the current transaction */ | 574 | /* lock the current transaction */ |