]> granicus.if.org Git - zfs/commitdiff
Revert "Evict meta data from ghost lists + l2arc headers"
authorBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 22 Aug 2013 19:14:26 +0000 (12:14 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 22 Aug 2013 19:15:37 +0000 (12:15 -0700)
This reverts commit fadd0c4da1e2ccd6014800d8b1a0fd117dd323e8 which
introduced a regression in honoring the meta limit.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Close #1660

module/zfs/arc.c

index 32ad80bcb5b0c575042f2d2bdc96e5911a432793..ce4a0239c0c0ba18370fd9ea43cb2b176fb90e05 100644 (file)
@@ -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);
 }