Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 84f4141e authored by Dave Kleikamp's avatar Dave Kleikamp
Browse files

jfs: Fix do_div precision in commit b40c2e66



In a hasty fix to replace a 64-bit division with do_div, I
unintentionally assigned the divisor to a 32-bit variable.

Signed-off-by: default avatarDave Kleikamp <dave.kleikamp@oracle.com>
Cc: Tino Reichardt <milky-kernel@mcmilk.de>
parent 550d6da2
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -1641,14 +1641,15 @@ s64 dbDiscardAG(struct inode *ip, int agno, s64 minlen)

	/* max blkno / nblocks pairs to trim */
	int count = 0, range_cnt;
	u64 max_ranges;

	/* prevent others from writing new stuff here, while trimming */
	IWRITE_LOCK(ipbmap, RDWRLOCK_DMAP);

	nblocks = bmp->db_agfree[agno];
	range_cnt = nblocks;
	do_div(range_cnt, (int)minlen);
	range_cnt = min(range_cnt + 1, 32 * 1024);
	max_ranges = nblocks;
	do_div(max_ranges, minlen);
	range_cnt = min_t(u64, max_ranges + 1, 32 * 1024);
	totrim = kmalloc(sizeof(struct range2trim) * range_cnt, GFP_NOFS);
	if (totrim == NULL) {
		jfs_error(bmp->db_ipbmap->i_sb,