Author: mav
Date: Sat Oct  3 11:43:54 2015
New Revision: 288599
URL: https://svnweb.freebsd.org/changeset/base/288599

Log:
  MFC r288064 (by avg): 6220 memleak in l2arc on debug build
  
  illumos/illumos-gate/commit/c546f36aa898d913ff77674fb5ff97f15b2e08b4
  https://www.illumos.org/issues/6220
    5408 introduced a memleak in l2arc, namely the member b_thawed gets leaked
    when an arc_hdr is realloced from full to l2only.
  
  Reviewed by: Saso Kiselkov <[email protected]>
  Reviewed by: Simon Klinkert <[email protected]>
  Reviewed by: George Wilson <[email protected]>
  Approved by: Robert Mustacchi <[email protected]>
  Author: Arne Jansen <[email protected]>

Modified:
  stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
==============================================================================
--- stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c      Sat Oct 
 3 11:41:27 2015        (r288598)
+++ stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c      Sat Oct 
 3 11:43:54 2015        (r288599)
@@ -1488,6 +1488,13 @@ arc_hdr_realloc(arc_buf_hdr_t *hdr, kmem
                VERIFY(!HDR_L2_WRITING(hdr));
                VERIFY3P(hdr->b_l1hdr.b_tmp_cdata, ==, NULL);
 
+#ifdef ZFS_DEBUG
+               if (hdr->b_l1hdr.b_thawed != NULL) {
+                       kmem_free(hdr->b_l1hdr.b_thawed, 1);
+                       hdr->b_l1hdr.b_thawed = NULL;
+               }
+#endif
+
                nhdr->b_flags &= ~ARC_FLAG_HAS_L1HDR;
        }
        /*
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to