kernel - Fix shared/excl livelock with vm.shared_fault
authorMatthew Dillon <dillon@apollo.backplane.com>
Tue, 26 Feb 2013 03:27:05 +0000 (19:27 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Tue, 26 Feb 2013 03:27:05 +0000 (19:27 -0800)
commit34a048ab5deacc3a1f37451bad89666fe37cd70d
tree3ae00fa4818214d61869d697ac04f68922acc55c
parentb3371fc101500242b133de85a1c4d10f67f53655
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().
sys/kern/vfs_helper.c