diff options
author | Prakash Surya <[email protected]> | 2014-01-03 10:11:14 -0800 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2014-02-21 16:10:49 -0800 |
commit | 77765b540b79bdc42d4f25f174004bbbd06b0a32 (patch) | |
tree | 006b52e32b183d7bac182a62ddf4edcece497984 | |
parent | 94520ca4626c7b01340473bccdaa3ed038a85a8f (diff) |
Remove "arc_meta_used" from arc_adjust calculation
Using "arc_meta_used" to determine if the arc's mru list is over it's
target value of "arc_p" doesn't seem correct. The size of the mru list
and the value of "arc_meta_used", although related, are completely
independent. Buffers contained in "arc_meta_used" may not even be
contained in the arc's mru list. As such, this patch removes
"arc_meta_used" from the calculation in arc_adjust.
Signed-off-by: Prakash Surya <[email protected]>
Signed-off-by: Brian Behlendorf <[email protected]>
Issue #2110
-rw-r--r-- | module/zfs/arc.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/module/zfs/arc.c b/module/zfs/arc.c index 9c2d0eaab..f28748423 100644 --- a/module/zfs/arc.c +++ b/module/zfs/arc.c @@ -2144,8 +2144,7 @@ arc_adjust(void) */ adjustment = MIN((int64_t)(arc_size - arc_c), - (int64_t)(arc_anon->arcs_size + arc_mru->arcs_size + arc_meta_used - - arc_p)); + (int64_t)(arc_anon->arcs_size + arc_mru->arcs_size - arc_p)); if (adjustment > 0 && arc_mru->arcs_lsize[ARC_BUFC_DATA] > 0) { delta = MIN(arc_mru->arcs_lsize[ARC_BUFC_DATA], adjustment); |