/[base]
ViewVC logotype

Revision 297848


Jump to revision: Previous Next
Author: avg
Date: Tue Apr 12 06:56:35 2016 UTC (8 years, 2 months ago)
Changed paths: 2
Log Message:
l2arc: make sure that all writes honor ashift of a cache device

Previously uncompressed buffers did not obey that rule.

Type of b_asize is changed to uint64_t for consistency,
given that this is a zeta-byte filesystem.

l2arc_compress_buf is renamed to l2arc_transform_buf to better reflect
its new utility.  Now not only we ensure that a compressed buffer has
a size aligned to ashift, but we also allocate a properly sized
temporary buffer if the original buffer is not compressed and it has
an odd size.  This ensures that all I/O to the cache device is always
ashift-aligned, in terms of both a request offset and a request size.

If the aligned data is larger than the original data, then we have to use
a temporary buffer when reading it as well.

Also, enhance physical zio alignment checks using vdev_logical_ashift.
On FreeBSD we have this information, so we can make stricter assertions.

Reviewed by: smh, mav
MFC after:	1 month
Sponsored by:	ClusterHQ
Differential Revision: https://reviews.freebsd.org/D2789


Changed paths

Path Details
Directoryhead/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c modified , text changed
Directoryhead/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c modified , text changed

  ViewVC Help
Powered by ViewVC 1.1.27