]> git.neil.brown.name Git - history.git/commitdiff
[XFS] Fix signed/unsigned issues in xfs_reserve_blocks routine.
authorNathan Scott <nathans@sgi.com>
Thu, 19 Aug 2004 21:19:06 +0000 (07:19 +1000)
committerNathan Scott <nathans@lips.borg.umn.edu>
Thu, 19 Aug 2004 21:19:06 +0000 (07:19 +1000)
SGI Modid: xfs-linux:xfs-kern:174873a
Signed-off-by: Nathan Scott <nathans@sgi.com>
fs/xfs/xfs_fsops.c

index 36bb461b626c363dfd14434628386e66e429eec9..4736fc4eaeed7afd1e89ac373eced4cf8304aba3 100644 (file)
@@ -507,9 +507,9 @@ xfs_reserve_blocks(
        __uint64_t              *inval,
        xfs_fsop_resblks_t      *outval)
 {
-       __uint64_t              lcounter, delta;
-       __uint64_t              request;
-       unsigned long s;
+       __int64_t               lcounter, delta;
+       __uint64_t              request;
+       unsigned long           s;
 
        /* If inval is null, report current values and return */
 
@@ -536,8 +536,7 @@ xfs_reserve_blocks(
                mp->m_resblks = request;
        } else {
                delta = request - mp->m_resblks;
-               lcounter = mp->m_sb.sb_fdblocks;
-               lcounter -= delta;
+               lcounter = mp->m_sb.sb_fdblocks - delta;
                if (lcounter < 0) {
                        /* We can't satisfy the request, just get what we can */
                        mp->m_resblks += mp->m_sb.sb_fdblocks;