Author: tychon
Date: Fri Apr 12 12:46:25 2019
New Revision: 346150
URL: https://svnweb.freebsd.org/changeset/base/346150

Log:
  for a cache-only zone the destructor tries to destroy a non-existent keg
  
  Reviewed by:  markj
  Sponsored by: Dell EMC Isilon
  Differential Revision:        https://reviews.freebsd.org/D19835

Modified:
  head/sys/vm/uma_core.c

Modified: head/sys/vm/uma_core.c
==============================================================================
--- head/sys/vm/uma_core.c      Fri Apr 12 10:13:17 2019        (r346149)
+++ head/sys/vm/uma_core.c      Fri Apr 12 12:46:25 2019        (r346150)
@@ -1916,10 +1916,10 @@ zone_dtor(void *arg, int size, void *udata)
         */
        zone_drain_wait(zone, M_WAITOK);
        /*
-        * We only destroy kegs from non secondary zones.
+        * We only destroy kegs from non secondary/non cache zones.
         */
-       if ((keg = zone->uz_keg) != NULL &&
-           (zone->uz_flags & UMA_ZONE_SECONDARY) == 0)  {
+       if ((zone->uz_flags & (UMA_ZONE_SECONDARY | UMA_ZFLAG_CACHE)) == 0) {
+               keg = zone->uz_keg;
                rw_wlock(&uma_rwlock);
                LIST_REMOVE(keg, uk_link);
                rw_wunlock(&uma_rwlock);


_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to