FreeBSD Bugzilla – Attachment 161919 Details for
Bug 203473
ZFS files server crash: solaris assert: start < end in trim_map.c
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch agains 10.2-STABLE
file_203473.txt (text/plain), 2.55 KB, created by
Willem Jan Withagen
on 2015-10-11 17:20:58 UTC
(
hide
)
Description:
Patch agains 10.2-STABLE
Filename:
MIME Type:
Creator:
Willem Jan Withagen
Created:
2015-10-11 17:20:58 UTC
Size:
2.55 KB
patch
obsolete
>Index: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c >=================================================================== >--- sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c (revision 289060) >+++ sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c (working copy) >@@ -1134,6 +1134,24 @@ > static void l2arc_decompress_zio(zio_t *, arc_buf_hdr_t *, enum zio_compress); > static void l2arc_release_cdata_buf(arc_buf_hdr_t *); > >+static void >+l2arc_trim(const arc_buf_hdr_t *hdr) >+{ >+ l2arc_dev_t *dev = hdr->b_l2hdr.b_dev; >+ >+ ASSERT(HDR_HAS_L2HDR(hdr)); >+ ASSERT(MUTEX_HELD(&dev->l2ad_mtx)); >+ >+ if (hdr->b_l2hdr.b_daddr == L2ARC_ADDR_UNSET) >+ return; >+ if (hdr->b_l2hdr.b_asize != 0) { >+ trim_map_free(dev->l2ad_vdev, hdr->b_l2hdr.b_daddr, >+ hdr->b_l2hdr.b_asize, 0); >+ } else { >+ ASSERT3U(hdr->b_l2hdr.b_compress, ==, ZIO_COMPRESS_EMPTY); >+ } >+} >+ > static uint64_t > buf_hash(uint64_t spa, const dva_t *dva, uint64_t birth) > { >@@ -2406,10 +2424,7 @@ > * want to re-destroy the header's L2 portion. > */ > if (HDR_HAS_L2HDR(hdr)) { >- if (hdr->b_l2hdr.b_daddr != L2ARC_ADDR_UNSET) >- trim_map_free(dev->l2ad_vdev, >- hdr->b_l2hdr.b_daddr, >- hdr->b_l2hdr.b_asize, 0); >+ l2arc_trim(hdr); > arc_hdr_l2hdr_destroy(hdr); > } > >@@ -4779,10 +4794,7 @@ > * to acquire the l2ad_mtx. > */ > if (HDR_HAS_L2HDR(hdr)) { >- if (hdr->b_l2hdr.b_daddr != L2ARC_ADDR_UNSET) >- trim_map_free(hdr->b_l2hdr.b_dev->l2ad_vdev, >- hdr->b_l2hdr.b_daddr, >- hdr->b_l2hdr.b_asize, 0); >+ l2arc_trim(hdr); > arc_hdr_l2hdr_destroy(hdr); > } > >@@ -5959,8 +5971,7 @@ > * Error - drop L2ARC entry. > */ > list_remove(buflist, hdr); >- trim_map_free(hdr->b_l2hdr.b_dev->l2ad_vdev, >- hdr->b_l2hdr.b_daddr, hdr->b_l2hdr.b_asize, 0); >+ l2arc_trim(hdr); > hdr->b_flags &= ~ARC_FLAG_HAS_L2HDR; > > ARCSTAT_INCR(arcstat_l2_asize, -hdr->b_l2hdr.b_asize);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 203473
:
161810
| 161919