MFV r267569:

4897 Space accounting mismatch in L2ARC/zpool

illumos/illumos-dist@3038a2b421b40dc5ac11cd88423696618584f85a

MFC after:	2 weeks

(cherry picked from commit 86aaa1302935ae7a1c050a36860cc802ae335dd6)

Ticket: #5415
(cherry picked from commit 0bdf9376d56a270924155815d59569473b3fb885)
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

(cherry picked from commit 5d9bbe4d63859aeb99bc7ca447f98eb286cd6f90)
(cherry picked from commit b1d29e0b1d005fa7ed50f179f714491e7e1503ba)
Plug compressed buffer leak, based on an old patch by avg@.