diff options
Diffstat (limited to 'fs/xattr.c')
| -rw-r--r-- | fs/xattr.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/xattr.c b/fs/xattr.c index bcc2156d4d28..386a532ee5a9 100644 --- a/fs/xattr.c +++ b/fs/xattr.c | |||
| @@ -51,7 +51,7 @@ setxattr(struct dentry *d, char __user *name, void __user *value, | |||
| 51 | } | 51 | } |
| 52 | } | 52 | } |
| 53 | 53 | ||
| 54 | down(&d->d_inode->i_sem); | 54 | mutex_lock(&d->d_inode->i_mutex); |
| 55 | error = security_inode_setxattr(d, kname, kvalue, size, flags); | 55 | error = security_inode_setxattr(d, kname, kvalue, size, flags); |
| 56 | if (error) | 56 | if (error) |
| 57 | goto out; | 57 | goto out; |
| @@ -73,7 +73,7 @@ setxattr(struct dentry *d, char __user *name, void __user *value, | |||
| 73 | fsnotify_xattr(d); | 73 | fsnotify_xattr(d); |
| 74 | } | 74 | } |
| 75 | out: | 75 | out: |
| 76 | up(&d->d_inode->i_sem); | 76 | mutex_unlock(&d->d_inode->i_mutex); |
| 77 | kfree(kvalue); | 77 | kfree(kvalue); |
| 78 | return error; | 78 | return error; |
| 79 | } | 79 | } |
| @@ -323,9 +323,9 @@ removexattr(struct dentry *d, char __user *name) | |||
| 323 | error = security_inode_removexattr(d, kname); | 323 | error = security_inode_removexattr(d, kname); |
| 324 | if (error) | 324 | if (error) |
| 325 | goto out; | 325 | goto out; |
| 326 | down(&d->d_inode->i_sem); | 326 | mutex_lock(&d->d_inode->i_mutex); |
| 327 | error = d->d_inode->i_op->removexattr(d, kname); | 327 | error = d->d_inode->i_op->removexattr(d, kname); |
| 328 | up(&d->d_inode->i_sem); | 328 | mutex_unlock(&d->d_inode->i_mutex); |
| 329 | if (!error) | 329 | if (!error) |
| 330 | fsnotify_xattr(d); | 330 | fsnotify_xattr(d); |
| 331 | } | 331 | } |
