Correct signed operation

Could return the wrong pages value

AKAMAI: zfs: CR 3695072
Reviewed-by: Tim Chase <tim@chase2k.com>
Reviewed-by: Richard Yao <ryao@gentoo.org>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Debabrata Banerjee <dbanerje@akamai.com>
Issue #6035
This commit is contained in:
Debabrata Banerjee 2017-03-15 21:01:31 -04:00 committed by Brian Behlendorf
parent 44813aefad
commit 4149bf498a
1 changed files with 2 additions and 2 deletions

View File

@ -4430,7 +4430,8 @@ __arc_shrinker_func(struct shrinker *shrink, struct shrink_control *sc)
if (current_is_kswapd()) if (current_is_kswapd())
arc_kmem_reap_now(); arc_kmem_reap_now();
#ifdef HAVE_SPLIT_SHRINKER_CALLBACK #ifdef HAVE_SPLIT_SHRINKER_CALLBACK
pages = MAX(pages - btop(arc_evictable_memory()), 0); pages = MAX((int64_t)pages -
(int64_t)btop(arc_evictable_memory()), 0);
#else #else
pages = btop(arc_evictable_memory()); pages = btop(arc_evictable_memory());
#endif #endif
@ -4438,7 +4439,6 @@ __arc_shrinker_func(struct shrinker *shrink, struct shrink_control *sc)
* We've shrunk what we can, wake up threads. * We've shrunk what we can, wake up threads.
*/ */
cv_broadcast(&arc_reclaim_waiters_cv); cv_broadcast(&arc_reclaim_waiters_cv);
} else } else
pages = SHRINK_STOP; pages = SHRINK_STOP;