diff options
author | Jes Sorensen <jes@sgi.com> | 2006-01-09 18:59:24 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@hera.kernel.org> | 2006-01-09 18:59:24 -0500 |
commit | 1b1dcc1b57a49136f118a0f16367256ff9994a69 (patch) | |
tree | b0b36d4f41d28c9d6514fb309d33c1a084d6309b /fs/debugfs/inode.c | |
parent | 794ee1baee1c26be40410233e6c20bceb2b03c08 (diff) |
[PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem
This patch converts the inode semaphore to a mutex. I have tested it on
XFS and compiled as much as one can consider on an ia64. Anyway your
luck with it might be different.
Modified-by: Ingo Molnar <mingo@elte.hu>
(finished the conversion)
Signed-off-by: Jes Sorensen <jes@sgi.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'fs/debugfs/inode.c')
-rw-r--r-- | fs/debugfs/inode.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c index a86ac4aeaedb..d4f1a2cddd47 100644 --- a/fs/debugfs/inode.c +++ b/fs/debugfs/inode.c | |||
@@ -146,7 +146,7 @@ static int debugfs_create_by_name(const char *name, mode_t mode, | |||
146 | } | 146 | } |
147 | 147 | ||
148 | *dentry = NULL; | 148 | *dentry = NULL; |
149 | down(&parent->d_inode->i_sem); | 149 | mutex_lock(&parent->d_inode->i_mutex); |
150 | *dentry = lookup_one_len(name, parent, strlen(name)); | 150 | *dentry = lookup_one_len(name, parent, strlen(name)); |
151 | if (!IS_ERR(dentry)) { | 151 | if (!IS_ERR(dentry)) { |
152 | if ((mode & S_IFMT) == S_IFDIR) | 152 | if ((mode & S_IFMT) == S_IFDIR) |
@@ -155,7 +155,7 @@ static int debugfs_create_by_name(const char *name, mode_t mode, | |||
155 | error = debugfs_create(parent->d_inode, *dentry, mode); | 155 | error = debugfs_create(parent->d_inode, *dentry, mode); |
156 | } else | 156 | } else |
157 | error = PTR_ERR(dentry); | 157 | error = PTR_ERR(dentry); |
158 | up(&parent->d_inode->i_sem); | 158 | mutex_unlock(&parent->d_inode->i_mutex); |
159 | 159 | ||
160 | return error; | 160 | return error; |
161 | } | 161 | } |
@@ -273,7 +273,7 @@ void debugfs_remove(struct dentry *dentry) | |||
273 | if (!parent || !parent->d_inode) | 273 | if (!parent || !parent->d_inode) |
274 | return; | 274 | return; |
275 | 275 | ||
276 | down(&parent->d_inode->i_sem); | 276 | mutex_lock(&parent->d_inode->i_mutex); |
277 | if (debugfs_positive(dentry)) { | 277 | if (debugfs_positive(dentry)) { |
278 | if (dentry->d_inode) { | 278 | if (dentry->d_inode) { |
279 | if (S_ISDIR(dentry->d_inode->i_mode)) | 279 | if (S_ISDIR(dentry->d_inode->i_mode)) |
@@ -283,7 +283,7 @@ void debugfs_remove(struct dentry *dentry) | |||
283 | dput(dentry); | 283 | dput(dentry); |
284 | } | 284 | } |
285 | } | 285 | } |
286 | up(&parent->d_inode->i_sem); | 286 | mutex_unlock(&parent->d_inode->i_mutex); |
287 | simple_release_fs(&debugfs_mount, &debugfs_mount_count); | 287 | simple_release_fs(&debugfs_mount, &debugfs_mount_count); |
288 | } | 288 | } |
289 | EXPORT_SYMBOL_GPL(debugfs_remove); | 289 | EXPORT_SYMBOL_GPL(debugfs_remove); |