summaryrefslogtreecommitdiffstats
path: root/fs/sysv/namei.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/sysv/namei.c')
-rw-r--r--fs/sysv/namei.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/sysv/namei.c b/fs/sysv/namei.c
index 270cfe637..60b50720a 100644
--- a/fs/sysv/namei.c
+++ b/fs/sysv/namei.c
@@ -419,7 +419,7 @@ int sysv_rmdir(struct inode * dir, struct dentry * dentry)
if ((dir->i_mode & S_ISVTX) &&
current->fsuid != inode->i_uid &&
- current->fsuid != dir->i_uid && !fsuser())
+ current->fsuid != dir->i_uid && !capable(CAP_FOWNER))
goto end_rmdir;
if (inode->i_dev != dir->i_dev)
goto end_rmdir;
@@ -484,7 +484,7 @@ repeat:
}
if ((dir->i_mode & S_ISVTX) &&
current->fsuid != inode->i_uid &&
- current->fsuid != dir->i_uid && !fsuser())
+ current->fsuid != dir->i_uid && !capable(CAP_FOWNER))
goto end_unlink;
if (de->inode != inode->i_ino) {
retval = -ENOENT;
@@ -643,7 +643,7 @@ start_up:
retval = -EPERM;
if ((old_dir->i_mode & S_ISVTX) &&
current->fsuid != old_inode->i_uid &&
- current->fsuid != old_dir->i_uid && !fsuser())
+ current->fsuid != old_dir->i_uid && !capable(CAP_FOWNER))
goto end_rename;
new_inode = new_dentry->d_inode;
new_bh = sysv_find_entry(new_dir, new_dentry->d_name.name,
@@ -675,7 +675,7 @@ start_up:
retval = -EPERM;
if (new_inode && (new_dir->i_mode & S_ISVTX) &&
current->fsuid != new_inode->i_uid &&
- current->fsuid != new_dir->i_uid && !fsuser())
+ current->fsuid != new_dir->i_uid && !capable(CAP_FOWNER))
goto end_rename;
if (S_ISDIR(old_inode->i_mode)) {
retval = -ENOTDIR;