diff options
author | Christoph Hellwig <hch@infradead.org> | 2008-02-04 20:12:58 -0500 |
---|---|---|
committer | Lachlan McIlroy <lachlan@redback.melbourne.sgi.com> | 2008-02-07 02:21:14 -0500 |
commit | 199037c598daf5f3602dace68c331665a4f4f0c1 (patch) | |
tree | 5a42444f8063eea365b75951441f2fdc709e8fbe /fs/xfs | |
parent | 9742bb93da27737fe490eab2af9fba1efa243dcb (diff) |
[XFS] remove permission check from xfs_change_file_space
Both callers of xfs_change_file_space alreaedy do the file->f_mode &
FMODE_WRITE check to ensure we have a file descriptor that has been opened
for write mode, so there is no need to re-check that with xfs_iaccess.
Especially as the later might wrongly deny it for corner cases like file
descriptor passing through unix domain sockets.
SGI-PV: 971186
SGI-Modid: xfs-linux-melb:xfs-kern:30365a
Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Diffstat (limited to 'fs/xfs')
-rw-r--r-- | fs/xfs/xfs_vnodeops.c | 12 |
1 files changed, 0 insertions, 12 deletions
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 6b71d9f763c7..076555e8763f 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c | |||
@@ -4317,21 +4317,9 @@ xfs_change_file_space( | |||
4317 | 4317 | ||
4318 | xfs_itrace_entry(ip); | 4318 | xfs_itrace_entry(ip); |
4319 | 4319 | ||
4320 | /* | ||
4321 | * must be a regular file and have write permission | ||
4322 | */ | ||
4323 | if (!S_ISREG(ip->i_d.di_mode)) | 4320 | if (!S_ISREG(ip->i_d.di_mode)) |
4324 | return XFS_ERROR(EINVAL); | 4321 | return XFS_ERROR(EINVAL); |
4325 | 4322 | ||
4326 | xfs_ilock(ip, XFS_ILOCK_SHARED); | ||
4327 | |||
4328 | if ((error = xfs_iaccess(ip, S_IWUSR, credp))) { | ||
4329 | xfs_iunlock(ip, XFS_ILOCK_SHARED); | ||
4330 | return error; | ||
4331 | } | ||
4332 | |||
4333 | xfs_iunlock(ip, XFS_ILOCK_SHARED); | ||
4334 | |||
4335 | switch (bf->l_whence) { | 4323 | switch (bf->l_whence) { |
4336 | case 0: /*SEEK_SET*/ | 4324 | case 0: /*SEEK_SET*/ |
4337 | break; | 4325 | break; |