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 18:07:59 +0000 (19:07 +0100)
commit01b8b5713691316b09588b9c28117527b3c0d0c6
treec877d2dc02d0b0aa957b52f1997f3d0fae240485
parente1a86b4083e867bd71061a1fcfb04db5086a5f1e
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