summaryrefslogtreecommitdiffstats
path: root/bin/dd
diff options
context:
space:
mode:
authoravg <avg@FreeBSD.org>2014-11-17 14:45:42 +0000
committeravg <avg@FreeBSD.org>2014-11-17 14:45:42 +0000
commit9d71a483ee4d8b9217bc5465780a78b820a723ea (patch)
tree3c4c73e7d0fb062ff6a53ea871bfed873551aa37 /bin/dd
parenta55c44171591890ee35bb5ce807785f90e12f280 (diff)
downloadFreeBSD-src-9d71a483ee4d8b9217bc5465780a78b820a723ea.zip
FreeBSD-src-9d71a483ee4d8b9217bc5465780a78b820a723ea.tar.gz
l2arc: restore correct rounding up of asize of compressed data
This rounding up was lost in a mismerge of illumos code. See r268075 MFV r267565. After that commit zio_compress_data() no longer performs any compressed size adjustment, so it needs to be done externally. On FreeBSD we round up the size using vdev_ashift rather than SPA_MINBLOCKSIZE so that 4KB devices are properly supported. Additionally, zero out the buffer tail only if compression succeeds. The compression is considered successful if the size of compressed data after rounding up to account for the vdev ashift is less than the original data size. It does not make sense to have the data compressed if all the savings are lost to rounding up. With the new zio_compress_data() it could have been possible that the rounded compressed size would be greater than the original size and thus we could zero beyond the allocated buffer if the zeroing code was kept at the original place. Discussed with: delphij, gibbs MFC after: 2 weeks X-MFC with: r274627
Diffstat (limited to 'bin/dd')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud