diff options
| author | Brian Behlendorf <behlendorf1@llnl.gov> | 2013-08-22 19:14:26 +0000 |
|---|---|---|
| committer | Brian Behlendorf <behlendorf1@llnl.gov> | 2013-08-22 19:15:37 +0000 |
| commit | c273d60d80958dea8edc3c6f5702c9c81ffbd8ea (patch) | |
| tree | fbcacf5ce654e2654e862c0fd3f809d6c0e06fdc | |
| parent | bff32e0972bbc07ba5f2b9ce5b965813d8edcf78 (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 <behlendorf1@llnl.gov>
Close #1660
| -rw-r--r-- | module/zfs/arc.c | 18 |
1 files changed, 1 insertions, 17 deletions
diff --git a/module/zfs/arc.c b/module/zfs/arc.c index 32ad80bcb5b0..ce4a0239c0c0 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); } |
