Commit 7892f2f4 authored by Ingo Molnar's avatar Ingo Molnar Committed by Ingo Molnar

[PATCH] mutex subsystem, semaphore to mutex: VFS, sb->s_lock

This patch converts the superblock-lock semaphore to a mutex, affecting
lock_super()/unlock_super(). Tested on ext3 and XFS.
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 1b1dcc1b
...@@ -2150,7 +2150,7 @@ int ext3_force_commit(struct super_block *sb) ...@@ -2150,7 +2150,7 @@ int ext3_force_commit(struct super_block *sb)
static void ext3_write_super (struct super_block * sb) static void ext3_write_super (struct super_block * sb)
{ {
if (down_trylock(&sb->s_lock) == 0) if (mutex_trylock(&sb->s_lock) != 0)
BUG(); BUG();
sb->s_dirt = 0; sb->s_dirt = 0;
} }
......
...@@ -169,7 +169,7 @@ static match_table_t tokens = { ...@@ -169,7 +169,7 @@ static match_table_t tokens = {
*/ */
static void ocfs2_write_super(struct super_block *sb) static void ocfs2_write_super(struct super_block *sb)
{ {
if (down_trylock(&sb->s_lock) == 0) if (mutex_trylock(&sb->s_lock) != 0)
BUG(); BUG();
sb->s_dirt = 0; sb->s_dirt = 0;
} }
......
...@@ -72,7 +72,7 @@ static struct super_block *alloc_super(void) ...@@ -72,7 +72,7 @@ static struct super_block *alloc_super(void)
INIT_HLIST_HEAD(&s->s_anon); INIT_HLIST_HEAD(&s->s_anon);
INIT_LIST_HEAD(&s->s_inodes); INIT_LIST_HEAD(&s->s_inodes);
init_rwsem(&s->s_umount); init_rwsem(&s->s_umount);
sema_init(&s->s_lock, 1); mutex_init(&s->s_lock);
down_write(&s->s_umount); down_write(&s->s_umount);
s->s_count = S_BIAS; s->s_count = S_BIAS;
atomic_set(&s->s_active, 1); atomic_set(&s->s_active, 1);
......
...@@ -821,7 +821,7 @@ struct super_block { ...@@ -821,7 +821,7 @@ struct super_block {
unsigned long s_magic; unsigned long s_magic;
struct dentry *s_root; struct dentry *s_root;
struct rw_semaphore s_umount; struct rw_semaphore s_umount;
struct semaphore s_lock; struct mutex s_lock;
int s_count; int s_count;
int s_syncing; int s_syncing;
int s_need_sync_fs; int s_need_sync_fs;
...@@ -893,13 +893,13 @@ static inline int has_fs_excl(void) ...@@ -893,13 +893,13 @@ static inline int has_fs_excl(void)
static inline void lock_super(struct super_block * sb) static inline void lock_super(struct super_block * sb)
{ {
get_fs_excl(); get_fs_excl();
down(&sb->s_lock); mutex_lock(&sb->s_lock);
} }
static inline void unlock_super(struct super_block * sb) static inline void unlock_super(struct super_block * sb)
{ {
put_fs_excl(); put_fs_excl();
up(&sb->s_lock); mutex_unlock(&sb->s_lock);
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment