]> granicus.if.org Git - zfs/commitdiff
Remove ASSERT() in l2arc_apply_transforms()
authorTim Chase <tim@chase2k.com>
Sat, 31 Mar 2018 22:14:21 +0000 (17:14 -0500)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Sat, 31 Mar 2018 22:14:21 +0000 (15:14 -0700)
The ASSERT was erroneously copied from the next section of code.
The buffer's size should be expanded from "psize" to "asize"
if necessary.

Reviewed-by: Tom Caputi <tcaputi@datto.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tim Chase <tim@chase2k.com>
Closes #7375

module/zfs/arc.c

index 893e42d315bb05fed92cbc49d9136cccd57b2bc8..40a93107d9c0e7bcbe4237912c5bb908a42d2057 100644 (file)
@@ -8476,11 +8476,11 @@ l2arc_apply_transforms(spa_t *spa, arc_buf_hdr_t *hdr, uint64_t asize,
         * shared buffer or to reallocate the buffer to match asize.
         */
        if (HDR_HAS_RABD(hdr) && asize != psize) {
-               ASSERT3U(size, ==, psize);
+               ASSERT3U(asize, >=, psize);
                to_write = abd_alloc_for_io(asize, ismd);
-               abd_copy(to_write, hdr->b_crypt_hdr.b_rabd, size);
-               if (size != asize)
-                       abd_zero_off(to_write, size, asize - size);
+               abd_copy(to_write, hdr->b_crypt_hdr.b_rabd, psize);
+               if (psize != asize)
+                       abd_zero_off(to_write, psize, asize - psize);
                goto out;
        }