puffs - don't lock dvp on nresolve
authorAlex Hornung <ahornung@gmail.com>
Tue, 19 Jun 2012 13:07:26 +0000 (14:07 +0100)
committerAlex Hornung <ahornung@gmail.com>
Tue, 19 Jun 2012 13:07:26 +0000 (14:07 +0100)
commite1b6efc32c724e86bf94597ea8d55abba488d8ed
treeb3c8eda07f21f31ce343488ed7ab7058dad7cb96
parentf3696fdb7a976688068577657c7df2f2b7da31d1
puffs - don't lock dvp on nresolve

 * locking dvp on nresolve causes a deadlock with the puffsop thread
   when the dvp is the root vnode.

 * If a lookup/nresolve occurs at the same time as a flush via the
   puffsop, then puffsop will not be able to acquire a lock on the root
   vnode as the lookup routine already holds it. Similarly the lookup
   routine never gets woken up waiting for the message to arrive, since
   puffsop is stuck and can't reply.
sys/vfs/puffs/puffs_vnops.c