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/nfsd/vfs.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/nfsd/vfs.c')
-rw-r--r-- | fs/nfsd/vfs.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c index df4019f04560..bb36b4304491 100644 --- a/fs/nfsd/vfs.c +++ b/fs/nfsd/vfs.c | |||
@@ -390,12 +390,12 @@ set_nfsv4_acl_one(struct dentry *dentry, struct posix_acl *pacl, char *key) | |||
390 | 390 | ||
391 | error = -EOPNOTSUPP; | 391 | error = -EOPNOTSUPP; |
392 | if (inode->i_op && inode->i_op->setxattr) { | 392 | if (inode->i_op && inode->i_op->setxattr) { |
393 | down(&inode->i_sem); | 393 | mutex_lock(&inode->i_mutex); |
394 | security_inode_setxattr(dentry, key, buf, len, 0); | 394 | security_inode_setxattr(dentry, key, buf, len, 0); |
395 | error = inode->i_op->setxattr(dentry, key, buf, len, 0); | 395 | error = inode->i_op->setxattr(dentry, key, buf, len, 0); |
396 | if (!error) | 396 | if (!error) |
397 | security_inode_post_setxattr(dentry, key, buf, len, 0); | 397 | security_inode_post_setxattr(dentry, key, buf, len, 0); |
398 | up(&inode->i_sem); | 398 | mutex_unlock(&inode->i_mutex); |
399 | } | 399 | } |
400 | out: | 400 | out: |
401 | kfree(buf); | 401 | kfree(buf); |
@@ -739,9 +739,9 @@ nfsd_sync(struct file *filp) | |||
739 | int err; | 739 | int err; |
740 | struct inode *inode = filp->f_dentry->d_inode; | 740 | struct inode *inode = filp->f_dentry->d_inode; |
741 | dprintk("nfsd: sync file %s\n", filp->f_dentry->d_name.name); | 741 | dprintk("nfsd: sync file %s\n", filp->f_dentry->d_name.name); |
742 | down(&inode->i_sem); | 742 | mutex_lock(&inode->i_mutex); |
743 | err=nfsd_dosync(filp, filp->f_dentry, filp->f_op); | 743 | err=nfsd_dosync(filp, filp->f_dentry, filp->f_op); |
744 | up(&inode->i_sem); | 744 | mutex_unlock(&inode->i_mutex); |
745 | 745 | ||
746 | return err; | 746 | return err; |
747 | } | 747 | } |
@@ -885,9 +885,9 @@ static void kill_suid(struct dentry *dentry) | |||
885 | struct iattr ia; | 885 | struct iattr ia; |
886 | ia.ia_valid = ATTR_KILL_SUID | ATTR_KILL_SGID; | 886 | ia.ia_valid = ATTR_KILL_SUID | ATTR_KILL_SGID; |
887 | 887 | ||
888 | down(&dentry->d_inode->i_sem); | 888 | mutex_lock(&dentry->d_inode->i_mutex); |
889 | notify_change(dentry, &ia); | 889 | notify_change(dentry, &ia); |
890 | up(&dentry->d_inode->i_sem); | 890 | mutex_unlock(&dentry->d_inode->i_mutex); |
891 | } | 891 | } |
892 | 892 | ||
893 | static inline int | 893 | static inline int |