git: kernel - Fix vkernel race in host

Matthew Dillon dillon at crater.dragonflybsd.org
Sat Jan 28 10:34:11 PST 2017


commit 98e80c6197a3c9407427208478cd1c813ff5f1ec
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sat Jan 28 10:30:53 2017 -0800

    kernel - Fix vkernel race in host
    
    * Obtaining a cache_ref before setting the DELETED flag deals with any
      drop race on cache_refs from another thread.
    
      This is actually quite elegant when done correctly.  The VKE_REF_DELETED
      on ve->refs determines when the ve has been destroyed, while
      ve->cache_refs determines when to kfree() the ve.  Acquiring an extra
      cache_ref before setting DELETED interlocks the two fields for last-drop
      purposes.

Summary of changes:
 sys/vm/vm_vmspace.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/98e80c6197a3c9407427208478cd1c813ff5f1ec


-- 
DragonFly BSD source repository



More information about the Commits mailing list