kernel - Fix improper unlock/relock sequence in HAMMER
authorMatthew Dillon <dillon@apollo.backplane.com>
Fri, 23 Mar 2012 20:36:27 +0000 (13:36 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Fri, 23 Mar 2012 20:36:27 +0000 (13:36 -0700)
commitaad00981445a4e7c60d89f07717d431f8a228e39
tree538789bf4ead1d0abacc8af0afee3b97bc460757
parent6bac9ae49e088aafa7604314335e9822676799bb
kernel - Fix improper unlock/relock sequence in HAMMER

* VOP_FSYNC() can be called during a vnode inactivation or reclaim.
  In this case the vnode lock absolutely cannot be released or it
  can create a window of opportunity for another thread that results
  in a panic.

* Fixes a NFS server crash when multiple clients are trying to
  delete/create/write the same file at the same time.
sys/vfs/hammer/hammer_vnops.c