MFV r268850:
authordelphij <delphij@FreeBSD.org>
Fri, 18 Jul 2014 22:04:21 +0000 (22:04 +0000)
committerdelphij <delphij@FreeBSD.org>
Fri, 18 Jul 2014 22:04:21 +0000 (22:04 +0000)
commit5d9bbe4d63859aeb99bc7ca447f98eb286cd6f90
tree064f35dd387570765ec43b968aaaa246fdf0b7f7
parent994bcafc32768dbcab8a30781143147799866c7f
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

MFC after: 2 weeks
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