xfs: simplify xfs_calc_dquots_per_chunk
authorEric Sandeen <sandeen@redhat.com>
Thu, 6 Apr 2017 23:01:47 +0000 (16:01 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Wed, 12 Apr 2017 15:42:51 +0000 (08:42 -0700)
ndquots is a 32-bit value, and we don't care
about the remainder; there is no reason to use do_div
here, it seems to be the result of a decade+ historical
accident.

Worse, the do_div implementation in userspace breaks
when fed a 32-bit dividend, so we commented it out there
in any case.

Change to simple division, and then we can change
userspace to match, and mandate a 64-bit dividend in
the do_div() in userspace as well.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
fs/xfs/libxfs/xfs_dquot_buf.c

index ac9a003dd29acf80d7c766788cb40d1f98d9132c..747085b4ef4406d387464b40fdea302b83c25c4c 100644 (file)
@@ -35,13 +35,8 @@ int
 xfs_calc_dquots_per_chunk(
        unsigned int            nbblks) /* basic block units */
 {
-       unsigned int    ndquots;
-
        ASSERT(nbblks > 0);
-       ndquots = BBTOB(nbblks);
-       do_div(ndquots, sizeof(xfs_dqblk_t));
-
-       return ndquots;
+       return BBTOB(nbblks) / sizeof(xfs_dqblk_t);
 }
 
 /*