diff options
author | Jerry Jelinek <jerry.jelinek@joyent.com> | 2018-01-17 12:34:19 +0000 |
---|---|---|
committer | Jerry Jelinek <jerry.jelinek@joyent.com> | 2018-01-17 12:34:19 +0000 |
commit | 2a808e6f3a1c5fa1720415a217da96fb64133053 (patch) | |
tree | 35a6f9db837e3cfe87bb2917503d93ebc9555b1f /usr/src/uts/common/fs/zfs/arc.c | |
parent | 85c7b8606e4a61f48f51d72efd00cb54a4afc46a (diff) | |
parent | b10f758d69dd151326d3859af7e1d857ec9a6355 (diff) | |
download | illumos-joyent-release-20180118.tar.gz |
[illumos-gate merge]release-20180118
commit b10f758d69dd151326d3859af7e1d857ec9a6355
8963 default chunk size used by ipmi_fru_read() is too large for some SP's
commit 301fd1d6f25595cd8c6d6795f39c72d97aff8cd9
8959 Add notifications when a scrub is paused or resumed
commit 01a059ee0cdece49f47fd4d70086dd5bc7d0b0ff
8856 arc_cksum_is_equal() doesn't take into account ABD-logic
commit b1b183574d0cf2bf3accbbf7717d88bdc3bbfc33
8952 VMware Workstation NVMe model is of "Unknown class of pci/pnpbios device" value
commit be93bc991e25533dcbeb10e952fe0b9314390d90
8806 xattr_dir_inactive() releases used vnode with kernel panic
commit 28e9047603953b20acb54306be7c48152a1b03e6
8954 libtopo cannot handle any array type other than string_array.
Conflicts:
usr/src/lib/libipmi/common/ipmi_fru.c
Diffstat (limited to 'usr/src/uts/common/fs/zfs/arc.c')
-rw-r--r-- | usr/src/uts/common/fs/zfs/arc.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/usr/src/uts/common/fs/zfs/arc.c b/usr/src/uts/common/fs/zfs/arc.c index aceb530967..9b1f0b0ed8 100644 --- a/usr/src/uts/common/fs/zfs/arc.c +++ b/usr/src/uts/common/fs/zfs/arc.c @@ -23,7 +23,7 @@ * Copyright (c) 2017, Joyent, Inc. * Copyright (c) 2011, 2017 by Delphix. All rights reserved. * Copyright (c) 2014 by Saso Kiselkov. All rights reserved. - * Copyright 2015 Nexenta Systems, Inc. All rights reserved. + * Copyright 2017 Nexenta Systems, Inc. All rights reserved. */ /* @@ -1551,8 +1551,9 @@ arc_cksum_is_equal(arc_buf_hdr_t *hdr, zio_t *zio) uint64_t lsize = HDR_GET_LSIZE(hdr); uint64_t csize; - void *cbuf = zio_buf_alloc(HDR_GET_PSIZE(hdr)); - csize = zio_compress_data(compress, zio->io_abd, cbuf, lsize); + abd_t *cdata = abd_alloc_linear(HDR_GET_PSIZE(hdr), B_TRUE); + csize = zio_compress_data(compress, zio->io_abd, + abd_to_buf(cdata), lsize); ASSERT3U(csize, <=, HDR_GET_PSIZE(hdr)); if (csize < HDR_GET_PSIZE(hdr)) { @@ -1568,10 +1569,10 @@ arc_cksum_is_equal(arc_buf_hdr_t *hdr, zio_t *zio) * and zero out any part that should not contain * data. */ - bzero((char *)cbuf + csize, HDR_GET_PSIZE(hdr) - csize); + abd_zero_off(cdata, csize, HDR_GET_PSIZE(hdr) - csize); csize = HDR_GET_PSIZE(hdr); } - zio_push_transform(zio, cbuf, csize, HDR_GET_PSIZE(hdr), NULL); + zio_push_transform(zio, cdata, csize, HDR_GET_PSIZE(hdr), NULL); } /* |