Fix arc_adjust_meta_balanced()

The type of "adjustmnt" was erroneously changed to unsigned when the compressed
ARC code was ported in d3c2ae1c08.

As a result of it being unsigned, the balanced metadata eviction logic
would evict all of the non-metadata.

Reviewed-by: Chris Severance <github.severach@spamgourmet.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed by: David Quigley <david.quigley@intel.com>
Signed-off-by: Tim Chase <tim@onlight.com>
Closes #5128 
Closes #5129
This commit is contained in:
Tim Chase 2016-09-19 11:28:35 -05:00 committed by Brian Behlendorf
parent a34f7ab332
commit 25e2ab16be

View File

@ -3520,8 +3520,8 @@ arc_adjust_impl(arc_state_t *state, uint64_t spa, int64_t bytes,
static uint64_t static uint64_t
arc_adjust_meta_balanced(void) arc_adjust_meta_balanced(void)
{ {
int64_t delta, prune = 0; int64_t delta, prune = 0, adjustmnt;
uint64_t adjustmnt, total_evicted = 0; uint64_t total_evicted = 0;
arc_buf_contents_t type = ARC_BUFC_DATA; arc_buf_contents_t type = ARC_BUFC_DATA;
int restarts = MAX(zfs_arc_meta_adjust_restarts, 0); int restarts = MAX(zfs_arc_meta_adjust_restarts, 0);