git: kernel - Fix shared/excl livelock with vm.shared_fault

Matthew Dillon dillon at crater.dragonflybsd.org
Mon Feb 25 19:35:52 PST 2013


commit 34a048ab5deacc3a1f37451bad89666fe37cd70d
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Mon Feb 25 19:27:05 2013 -0800

    kernel - Fix shared/excl livelock with vm.shared_fault
    
    * The vop_helper_read_shortcut() code was holding a shared token on
      a VM object through a uiomove().  If the uiomove() generated a VM
      fault requiring a shadow copy, the shadow copy would try to get
      an exclusive token on potentially the same object and livelock.
    
    * Fix by unlocking/relocking across the uiomove().

Summary of changes:
 sys/kern/vfs_helper.c | 9 +++++++++
 1 file changed, 9 insertions(+)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/34a048ab5deacc3a1f37451bad89666fe37cd70d


-- 
DragonFly BSD source repository



More information about the Commits mailing list