diff options
author | avg <avg@FreeBSD.org> | 2017-03-23 08:00:45 +0000 |
---|---|---|
committer | avg <avg@FreeBSD.org> | 2017-03-23 08:00:45 +0000 |
commit | 3f9055c08b345e22e45c45da2260cf205895ba62 (patch) | |
tree | af6d7294db19b0990c9462afd32164f2e6b2f5c2 /sys | |
parent | e079d85984993337144c8d5e90358d16e9521dc6 (diff) | |
download | FreeBSD-src-3f9055c08b345e22e45c45da2260cf205895ba62.zip FreeBSD-src-3f9055c08b345e22e45c45da2260cf205895ba62.tar.gz |
MFC r314913: MFV r314911: 7867 ARC space accounting leak
Diffstat (limited to 'sys')
-rw-r--r-- | sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c index 4c38bd7..c100070 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c @@ -2610,6 +2610,12 @@ arc_hdr_free_on_write(arc_buf_hdr_t *hdr) size, hdr); } (void) refcount_remove_many(&state->arcs_size, size, hdr); + if (type == ARC_BUFC_METADATA) { + arc_space_return(size, ARC_SPACE_META); + } else { + ASSERT(type == ARC_BUFC_DATA); + arc_space_return(size, ARC_SPACE_DATA); + } l2arc_free_data_on_write(hdr->b_l1hdr.b_pdata, size, type); } |