summaryrefslogtreecommitdiffstats
path: root/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2015-10-03 07:53:56 +0000
committermav <mav@FreeBSD.org>2015-10-03 07:53:56 +0000
commit37189f996824458a2be799f3124263b9d94542b9 (patch)
tree1b98d9bcfb3cce3a6ba9e1a66af3d814111680a6 /sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
parente9137ac99fd13446947087951000e9f3fe162ef0 (diff)
downloadFreeBSD-src-37189f996824458a2be799f3124263b9d94542b9.zip
FreeBSD-src-37189f996824458a2be799f3124263b9d94542b9.tar.gz
MFC r286655: Fix set of sign extension bugs in r286625.
Diffstat (limited to 'sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c')
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
index 19c1d4696..6ff7d0d 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
@@ -3148,7 +3148,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;
@@ -3210,7 +3210,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;
@@ -3231,7 +3231,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;
@@ -3245,7 +3245,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;
OpenPOWER on IntegriCloud