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 | } |