aboutsummaryrefslogtreecommitdiffstats
path: root/module/zfs/arc.c
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2013-08-22 12:14:26 -0700
committerBrian Behlendorf <[email protected]>2013-08-22 12:15:37 -0700
commitc273d60d80958dea8edc3c6f5702c9c81ffbd8ea (patch)
treefbcacf5ce654e2654e862c0fd3f809d6c0e06fdc /module/zfs/arc.c
parentbff32e0972bbc07ba5f2b9ce5b965813d8edcf78 (diff)
Revert "Evict meta data from ghost lists + l2arc headers"
This reverts commit fadd0c4da1e2ccd6014800d8b1a0fd117dd323e8 which introduced a regression in honoring the meta limit. Signed-off-by: Brian Behlendorf <[email protected]> Close #1660
Diffstat (limited to 'module/zfs/arc.c')
-rw-r--r--module/zfs/arc.c18
1 files changed, 1 insertions, 17 deletions
diff --git a/module/zfs/arc.c b/module/zfs/arc.c
index 32ad80bcb..ce4a0239c 100644
--- a/module/zfs/arc.c
+++ b/module/zfs/arc.c
@@ -2104,9 +2104,8 @@ arc_do_user_evicts(void)
void
arc_adjust_meta(int64_t adjustment, boolean_t may_prune)
{
- int64_t delta, tmp = adjustment;
+ int64_t delta;
- /* Evict MRU+MFU meta data to ghost lists */
if (adjustment > 0 && arc_mru->arcs_lsize[ARC_BUFC_METADATA] > 0) {
delta = MIN(arc_mru->arcs_lsize[ARC_BUFC_METADATA], adjustment);
arc_evict(arc_mru, 0, delta, FALSE, ARC_BUFC_METADATA);
@@ -2116,24 +2115,9 @@ arc_adjust_meta(int64_t adjustment, boolean_t may_prune)
if (adjustment > 0 && arc_mfu->arcs_lsize[ARC_BUFC_METADATA] > 0) {
delta = MIN(arc_mfu->arcs_lsize[ARC_BUFC_METADATA], adjustment);
arc_evict(arc_mfu, 0, delta, FALSE, ARC_BUFC_METADATA);
- }
-
- /* Evict ghost MRU+MFU meta data */
- adjustment = tmp;
-
- if (adjustment > 0 && arc_mru_ghost->arcs_size > 0) {
- delta = MIN(arc_mru_ghost->arcs_size, adjustment);
- arc_evict_ghost(arc_mru_ghost, 0, delta, ARC_BUFC_METADATA);
- adjustment -= delta;
- }
-
- if (adjustment > 0 && arc_mfu_ghost->arcs_size > 0) {
- delta = MIN(arc_mfu_ghost->arcs_size, adjustment);
- arc_evict_ghost(arc_mfu_ghost, 0, delta, ARC_BUFC_METADATA);
adjustment -= delta;
}
- /* Request the VFS release some meta data */
if (may_prune && (adjustment > 0) && (arc_meta_used > arc_meta_limit))
arc_do_user_prune(zfs_arc_meta_prune);
}