]> granicus.if.org Git - zfs/commitdiff
Don't report ghost buffers as evictable mem
authorDebabrata Banerjee <dbanerje@akamai.com>
Mon, 27 Feb 2017 01:32:13 +0000 (20:32 -0500)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 2 May 2017 19:47:23 +0000 (15:47 -0400)
Ghost meta/data buffers are not actually allocated

AKAMAI: zfs: CR 3695072
Reviewed-by: Tim Chase <tim@chase2k.com>
Reviewed-by: Richard Yao <ryao@gentoo.org>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Debabrata Banerjee <dbanerje@akamai.com>
Issue #6035

module/zfs/arc.c

index 25fdbdd2bf14927172a3c3897b9b676fe116ea70..4e5c9eaf509c5f2330edfa1b60fcdf00fd65c386 100644 (file)
@@ -4374,17 +4374,12 @@ arc_evictable_memory(void)
            refcount_count(&arc_mru->arcs_esize[ARC_BUFC_METADATA]) +
            refcount_count(&arc_mfu->arcs_esize[ARC_BUFC_DATA]) +
            refcount_count(&arc_mfu->arcs_esize[ARC_BUFC_METADATA]);
-       uint64_t ghost_clean =
-           refcount_count(&arc_mru_ghost->arcs_esize[ARC_BUFC_DATA]) +
-           refcount_count(&arc_mru_ghost->arcs_esize[ARC_BUFC_METADATA]) +
-           refcount_count(&arc_mfu_ghost->arcs_esize[ARC_BUFC_DATA]) +
-           refcount_count(&arc_mfu_ghost->arcs_esize[ARC_BUFC_METADATA]);
        uint64_t arc_dirty = MAX((int64_t)arc_size - (int64_t)arc_clean, 0);
 
        if (arc_dirty >= arc_c_min)
-               return (ghost_clean + arc_clean);
+               return (arc_clean);
 
-       return (ghost_clean + MAX((int64_t)arc_size - (int64_t)arc_c_min, 0));
+       return (MAX((int64_t)arc_size - (int64_t)arc_c_min, 0));
 }
 
 /*