summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2009-07-26 09:06:32 +0200
committerThomas Gleixner <tglx@linutronix.de>2009-07-27 13:36:17 +0200
commit2e2725704777fd240f99e568bff4e37bf03f1c73 (patch)
treeeda40bac675982b18ffd4f7c536dcc1ee1f2c936
parent041e3130496f31d0cb4887fc6183117e662f5141 (diff)
downloadlwn-2e2725704777fd240f99e568bff4e37bf03f1c73.tar.gz
lwn-2e2725704777fd240f99e568bff4e37bf03f1c73.zip
fs: Convert bd_mount_sem to mutex
bd_mount_sem is used as mutex so make it a mutex. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r--fs/block_dev.c8
-rw-r--r--fs/super.c4
-rw-r--r--include/linux/fs.h2
3 files changed, 7 insertions, 7 deletions
diff --git a/fs/block_dev.c b/fs/block_dev.c
index 3a6d4fb2a329..bbae4219f956 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -240,7 +240,7 @@ struct super_block *freeze_bdev(struct block_device *bdev)
}
bdev->bd_fsfreeze_count++;
- down(&bdev->bd_mount_sem);
+ mutex_lock(&bdev->bd_mount_sem);
sb = get_super(bdev);
if (sb && !(sb->s_flags & MS_RDONLY)) {
sb->s_frozen = SB_FREEZE_WRITE;
@@ -260,7 +260,7 @@ struct super_block *freeze_bdev(struct block_device *bdev)
"VFS:Filesystem freeze failed\n");
sb->s_frozen = SB_UNFROZEN;
drop_super(sb);
- up(&bdev->bd_mount_sem);
+ mutex_unlock(&bdev->bd_mount_sem);
bdev->bd_fsfreeze_count--;
mutex_unlock(&bdev->bd_fsfreeze_mutex);
return ERR_PTR(error);
@@ -321,7 +321,7 @@ int thaw_bdev(struct block_device *bdev, struct super_block *sb)
drop_super(sb);
}
- up(&bdev->bd_mount_sem);
+ mutex_unlock(&bdev->bd_mount_sem);
mutex_unlock(&bdev->bd_fsfreeze_mutex);
return 0;
}
@@ -431,7 +431,7 @@ static void init_once(void *foo)
memset(bdev, 0, sizeof(*bdev));
mutex_init(&bdev->bd_mutex);
- sema_init(&bdev->bd_mount_sem, 1);
+ mutex_init(&bdev->bd_mount_sem);
INIT_LIST_HEAD(&bdev->bd_inodes);
INIT_LIST_HEAD(&bdev->bd_list);
#ifdef CONFIG_SYSFS
diff --git a/fs/super.c b/fs/super.c
index 2761d3e22ed9..1484f9174207 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -740,9 +740,9 @@ int get_sb_bdev(struct file_system_type *fs_type,
* will protect the lockfs code from trying to start a snapshot
* while we are mounting
*/
- down(&bdev->bd_mount_sem);
+ mutex_lock(&bdev->bd_mount_sem);
s = sget(fs_type, test_bdev_super, set_bdev_super, bdev);
- up(&bdev->bd_mount_sem);
+ mutex_unlock(&bdev->bd_mount_sem);
if (IS_ERR(s))
goto error_s;
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 0872372184fe..48a0665a7dd3 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -640,7 +640,7 @@ struct block_device {
struct super_block * bd_super;
int bd_openers;
struct mutex bd_mutex; /* open/close mutex */
- struct semaphore bd_mount_sem;
+ struct mutex bd_mount_sem;
struct list_head bd_inodes;
void * bd_holder;
int bd_holders;