diff options
author | avg <avg@FreeBSD.org> | 2016-04-12 06:56:35 +0000 |
---|---|---|
committer | avg <avg@FreeBSD.org> | 2016-04-12 06:56:35 +0000 |
commit | 43050e97c28ae0431ded06bb13f0b210583dccbd (patch) | |
tree | 7f92d16592cc86b8b0d39ce5784523d6cd1eec5f /lib/libgssapi | |
parent | 665a947e1b063db724d08bb6e1557bf9d293d0d1 (diff) | |
download | FreeBSD-src-43050e97c28ae0431ded06bb13f0b210583dccbd.zip FreeBSD-src-43050e97c28ae0431ded06bb13f0b210583dccbd.tar.gz |
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
Diffstat (limited to 'lib/libgssapi')
0 files changed, 0 insertions, 0 deletions