]> git.proxmox.com Git - mirror_zfs-debian.git/blobdiff - module/zfs/zio_compress.c
Imported Upstream version 0.6.4.2
[mirror_zfs-debian.git] / module / zfs / zio_compress.c
index 5b63f0aa0c73a4fbf708c40910492c5523a6f379..07446234922b63e92d1214483b0251ef0230d417 100644 (file)
@@ -80,7 +80,7 @@ size_t
 zio_compress_data(enum zio_compress c, void *src, void *dst, size_t s_len)
 {
        uint64_t *word, *word_end;
-       size_t c_len, d_len, r_len;
+       size_t c_len, d_len;
        zio_compress_info_t *ci = &zio_compress_table[c];
 
        ASSERT((uint_t)c < ZIO_COMPRESS_FUNCTIONS);
@@ -102,28 +102,13 @@ zio_compress_data(enum zio_compress c, void *src, void *dst, size_t s_len)
                return (s_len);
 
        /* Compress at least 12.5% */
-       d_len = P2ALIGN(s_len - (s_len >> 3), (size_t)SPA_MINBLOCKSIZE);
-       if (d_len == 0)
-               return (s_len);
-
+       d_len = s_len - (s_len >> 3);
        c_len = ci->ci_compress(src, dst, s_len, d_len, ci->ci_level);
 
        if (c_len > d_len)
                return (s_len);
 
-       /*
-        * Cool.  We compressed at least as much as we were hoping to.
-        * For both security and repeatability, pad out the last sector.
-        */
-       r_len = P2ROUNDUP(c_len, (size_t)SPA_MINBLOCKSIZE);
-       if (r_len > c_len) {
-               bzero((char *)dst + c_len, r_len - c_len);
-               c_len = r_len;
-       }
-
        ASSERT3U(c_len, <=, d_len);
-       ASSERT(P2PHASE(c_len, (size_t)SPA_MINBLOCKSIZE) == 0);
-
        return (c_len);
 }