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/ext3 | |
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/ext3')
-rw-r--r-- | fs/ext3/acl.c | 10 | ||||
-rw-r--r-- | fs/ext3/super.c | 4 | ||||
-rw-r--r-- | fs/ext3/xattr.c | 2 |
3 files changed, 8 insertions, 8 deletions
diff --git a/fs/ext3/acl.c b/fs/ext3/acl.c index 3ac38266fc9e..9ed132c96034 100644 --- a/fs/ext3/acl.c +++ b/fs/ext3/acl.c | |||
@@ -152,7 +152,7 @@ ext3_iset_acl(struct inode *inode, struct posix_acl **i_acl, | |||
152 | /* | 152 | /* |
153 | * Inode operation get_posix_acl(). | 153 | * Inode operation get_posix_acl(). |
154 | * | 154 | * |
155 | * inode->i_sem: don't care | 155 | * inode->i_mutex: don't care |
156 | */ | 156 | */ |
157 | static struct posix_acl * | 157 | static struct posix_acl * |
158 | ext3_get_acl(struct inode *inode, int type) | 158 | ext3_get_acl(struct inode *inode, int type) |
@@ -216,7 +216,7 @@ ext3_get_acl(struct inode *inode, int type) | |||
216 | /* | 216 | /* |
217 | * Set the access or default ACL of an inode. | 217 | * Set the access or default ACL of an inode. |
218 | * | 218 | * |
219 | * inode->i_sem: down unless called from ext3_new_inode | 219 | * inode->i_mutex: down unless called from ext3_new_inode |
220 | */ | 220 | */ |
221 | static int | 221 | static int |
222 | ext3_set_acl(handle_t *handle, struct inode *inode, int type, | 222 | ext3_set_acl(handle_t *handle, struct inode *inode, int type, |
@@ -306,8 +306,8 @@ ext3_permission(struct inode *inode, int mask, struct nameidata *nd) | |||
306 | /* | 306 | /* |
307 | * Initialize the ACLs of a new inode. Called from ext3_new_inode. | 307 | * Initialize the ACLs of a new inode. Called from ext3_new_inode. |
308 | * | 308 | * |
309 | * dir->i_sem: down | 309 | * dir->i_mutex: down |
310 | * inode->i_sem: up (access to inode is still exclusive) | 310 | * inode->i_mutex: up (access to inode is still exclusive) |
311 | */ | 311 | */ |
312 | int | 312 | int |
313 | ext3_init_acl(handle_t *handle, struct inode *inode, struct inode *dir) | 313 | ext3_init_acl(handle_t *handle, struct inode *inode, struct inode *dir) |
@@ -368,7 +368,7 @@ cleanup: | |||
368 | * for directories) are added. There are no more bits available in the | 368 | * for directories) are added. There are no more bits available in the |
369 | * file mode. | 369 | * file mode. |
370 | * | 370 | * |
371 | * inode->i_sem: down | 371 | * inode->i_mutex: down |
372 | */ | 372 | */ |
373 | int | 373 | int |
374 | ext3_acl_chmod(struct inode *inode) | 374 | ext3_acl_chmod(struct inode *inode) |
diff --git a/fs/ext3/super.c b/fs/ext3/super.c index 7c45acf94589..c3dbebdb9897 100644 --- a/fs/ext3/super.c +++ b/fs/ext3/super.c | |||
@@ -2601,7 +2601,7 @@ static ssize_t ext3_quota_write(struct super_block *sb, int type, | |||
2601 | struct buffer_head *bh; | 2601 | struct buffer_head *bh; |
2602 | handle_t *handle = journal_current_handle(); | 2602 | handle_t *handle = journal_current_handle(); |
2603 | 2603 | ||
2604 | down(&inode->i_sem); | 2604 | mutex_lock(&inode->i_mutex); |
2605 | while (towrite > 0) { | 2605 | while (towrite > 0) { |
2606 | tocopy = sb->s_blocksize - offset < towrite ? | 2606 | tocopy = sb->s_blocksize - offset < towrite ? |
2607 | sb->s_blocksize - offset : towrite; | 2607 | sb->s_blocksize - offset : towrite; |
@@ -2644,7 +2644,7 @@ out: | |||
2644 | inode->i_version++; | 2644 | inode->i_version++; |
2645 | inode->i_mtime = inode->i_ctime = CURRENT_TIME; | 2645 | inode->i_mtime = inode->i_ctime = CURRENT_TIME; |
2646 | ext3_mark_inode_dirty(handle, inode); | 2646 | ext3_mark_inode_dirty(handle, inode); |
2647 | up(&inode->i_sem); | 2647 | mutex_unlock(&inode->i_mutex); |
2648 | return len - towrite; | 2648 | return len - towrite; |
2649 | } | 2649 | } |
2650 | 2650 | ||
diff --git a/fs/ext3/xattr.c b/fs/ext3/xattr.c index 430de9f63be3..238199d82ce5 100644 --- a/fs/ext3/xattr.c +++ b/fs/ext3/xattr.c | |||
@@ -140,7 +140,7 @@ ext3_xattr_handler(int name_index) | |||
140 | /* | 140 | /* |
141 | * Inode operation listxattr() | 141 | * Inode operation listxattr() |
142 | * | 142 | * |
143 | * dentry->d_inode->i_sem: don't care | 143 | * dentry->d_inode->i_mutex: don't care |
144 | */ | 144 | */ |
145 | ssize_t | 145 | ssize_t |
146 | ext3_listxattr(struct dentry *dentry, char *buffer, size_t size) | 146 | ext3_listxattr(struct dentry *dentry, char *buffer, size_t size) |