diff options
Diffstat (limited to 'fs/reiserfs/ioctl.c')
-rw-r--r-- | fs/reiserfs/ioctl.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/fs/reiserfs/ioctl.c b/fs/reiserfs/ioctl.c index b484d2913c0d..11a0fcc2d402 100644 --- a/fs/reiserfs/ioctl.c +++ b/fs/reiserfs/ioctl.c | |||
@@ -51,8 +51,7 @@ int reiserfs_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, | |||
51 | if (IS_RDONLY(inode)) | 51 | if (IS_RDONLY(inode)) |
52 | return -EROFS; | 52 | return -EROFS; |
53 | 53 | ||
54 | if ((current->fsuid != inode->i_uid) | 54 | if (!is_owner_or_cap(inode)) |
55 | && !capable(CAP_FOWNER)) | ||
56 | return -EPERM; | 55 | return -EPERM; |
57 | 56 | ||
58 | if (get_user(flags, (int __user *)arg)) | 57 | if (get_user(flags, (int __user *)arg)) |
@@ -81,7 +80,7 @@ int reiserfs_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, | |||
81 | case REISERFS_IOC_GETVERSION: | 80 | case REISERFS_IOC_GETVERSION: |
82 | return put_user(inode->i_generation, (int __user *)arg); | 81 | return put_user(inode->i_generation, (int __user *)arg); |
83 | case REISERFS_IOC_SETVERSION: | 82 | case REISERFS_IOC_SETVERSION: |
84 | if ((current->fsuid != inode->i_uid) && !capable(CAP_FOWNER)) | 83 | if (!is_owner_or_cap(inode)) |
85 | return -EPERM; | 84 | return -EPERM; |
86 | if (IS_RDONLY(inode)) | 85 | if (IS_RDONLY(inode)) |
87 | return -EROFS; | 86 | return -EROFS; |