]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC r268858: MFV r268850:
authordelphij <delphij@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sat, 2 Aug 2014 03:59:35 +0000 (03:59 +0000)
committerdelphij <delphij@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sat, 2 Aug 2014 03:59:35 +0000 (03:59 +0000)
commit439774bc9f45e20ffc09e68286c48b609bce6fe4
tree01383cd9af81395a0eb20cc45196540ea6bcb0db
parentc980e797ad3127557825d0c61d0c8975ca90ddd5
MFC r268858: MFV r268850:

Change the interaction between the DMU and ARC so that when the DMU is
shutting down an objset, we do not evict the data from the ARC.  Instead
we simply coordinate the destruction of the DMU's data with the ARC.

The only case where we actually need to explicitly evict from the ARC is
when dbuf_rele_and_unlock() determines that the administrator has requested
that it not be kept in memory, via the primarycache/secondarycache properties.
In this case, we evict the data from the ARC by its blkptr_t, the same way
as when a block is freed we explicitly evict it from the ARC.

Illumos issue:
    4631 zvol_get_stats triggering too many reads

git-svn-id: svn://svn.freebsd.org/base/stable/10@269417 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h