Skip to content

Commit

Permalink
[XFS] Fix signedness issues in dquot ID handling, allowing uids/gids …
Browse files Browse the repository at this point in the history
…above

MAXINT

SGI-PV: 942528
SGI-Modid: xfs-linux:xfs-kern:23828a

Signed-off-by: Nathan Scott <[email protected]>
  • Loading branch information
natoscott committed Nov 1, 2005
1 parent 30dab21 commit c310ab6
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 10 deletions.
3 changes: 1 addition & 2 deletions fs/xfs/quota/xfs_dquot.c
Original file line number Diff line number Diff line change
Expand Up @@ -563,8 +563,7 @@ xfs_qm_dqtobp(
*/
if (dqp->q_blkno == (xfs_daddr_t) 0) {
/* We use the id as an index */
dqp->q_fileoffset = (xfs_fileoff_t) ((uint)id /
XFS_QM_DQPERBLK(mp));
dqp->q_fileoffset = (xfs_fileoff_t)id / XFS_QM_DQPERBLK(mp);
nmaps = 1;
quotip = XFS_DQ_TO_QIP(dqp);
xfs_ilock(quotip, XFS_ILOCK_SHARED);
Expand Down
9 changes: 2 additions & 7 deletions fs/xfs/quota/xfs_qm_syscalls.c
Original file line number Diff line number Diff line change
Expand Up @@ -109,10 +109,7 @@ xfs_qm_quotactl(
vfsp = bhvtovfs(bdp);
mp = XFS_VFSTOM(vfsp);

if (addr == NULL && cmd != Q_SYNC)
return XFS_ERROR(EINVAL);
if (id < 0 && cmd != Q_SYNC)
return XFS_ERROR(EINVAL);
ASSERT(addr != NULL);

/*
* The following commands are valid even when quotaoff.
Expand All @@ -122,7 +119,7 @@ xfs_qm_quotactl(
/*
* Truncate quota files. quota must be off.
*/
if (XFS_IS_QUOTA_ON(mp) || addr == NULL)
if (XFS_IS_QUOTA_ON(mp))
return XFS_ERROR(EINVAL);
if (vfsp->vfs_flag & VFS_RDONLY)
return XFS_ERROR(EROFS);
Expand All @@ -140,8 +137,6 @@ xfs_qm_quotactl(
* QUOTAON - enabling quota enforcement.
* Quota accounting must be turned on at mount time.
*/
if (addr == NULL)
return XFS_ERROR(EINVAL);
if (vfsp->vfs_flag & VFS_RDONLY)
return XFS_ERROR(EROFS);
return (xfs_qm_scall_quotaon(mp,
Expand Down
2 changes: 1 addition & 1 deletion fs/xfs/xfs_quota.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
* uid_t and gid_t are hard-coded to 32 bits in the inode.
* Hence, an 'id' in a dquot is 32 bits..
*/
typedef __int32_t xfs_dqid_t;
typedef __uint32_t xfs_dqid_t;

/*
* Eventhough users may not have quota limits occupying all 64-bits,
Expand Down

0 comments on commit c310ab6

Please sign in to comment.