Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Aug 2015 08:36:58 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r286655 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Message-ID:  <201508120836.t7C8awIM023279@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Wed Aug 12 08:36:58 2015
New Revision: 286655
URL: https://svnweb.freebsd.org/changeset/base/286655

Log:
  Fix set of sign extension bugs in r286625.

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c	Wed Aug 12 07:59:00 2015	(r286654)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c	Wed Aug 12 08:36:58 2015	(r286655)
@@ -3145,7 +3145,7 @@ arc_available_memory(void)
 	 * Cooperate with pagedaemon when it's time for it to scan
 	 * and reclaim some pages.
 	 */
-	n = PAGESIZE * (int64_t)(freemem - zfs_arc_free_target);
+	n = PAGESIZE * ((int64_t)freemem - zfs_arc_free_target);
 	if (n < lowest) {
 		lowest = n;
 		r = FMR_LOTSFREE;
@@ -3207,7 +3207,7 @@ arc_available_memory(void)
 	 * heap is allocated.  (Or, in the calculation, if less than 1/4th is
 	 * free)
 	 */
-	n = vmem_size(heap_arena, VMEM_FREE) -
+	n = (int64_t)vmem_size(heap_arena, VMEM_FREE) -
 	    (vmem_size(heap_arena, VMEM_FREE | VMEM_ALLOC) >> 2);
 	if (n < lowest) {
 		lowest = n;
@@ -3228,7 +3228,7 @@ arc_available_memory(void)
 	 * memory fragmentation issues.
 	 */
 	if (zio_arena != NULL) {
-		n = vmem_size(zio_arena, VMEM_FREE) -
+		n = (int64_t)vmem_size(zio_arena, VMEM_FREE) -
 		    (vmem_size(zio_arena, VMEM_ALLOC) >> 4);
 		if (n < lowest) {
 			lowest = n;
@@ -3242,7 +3242,8 @@ arc_available_memory(void)
 	 */
 	if (lowest > 0) {
 		n = (vmem_size(heap_arena, VMEM_MAXFREE) < zfs_max_recordsize) ?
-		    -(vmem_size(heap_arena, VMEM_ALLOC) >> 4) : INT64_MAX;
+		    -((int64_t)vmem_size(heap_arena, VMEM_ALLOC) >> 4) :
+		    INT64_MAX;
 		if (n < lowest) {
 			lowest = n;
 			r = FMR_ZIO_FRAG;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201508120836.t7C8awIM023279>