hammer2 - Fix "hammer2_chain_getparent: no parent" assertion
commitd0dd92f61fc6d39c5d9e89cf8d72b2994961cdd4
authorMatthew Dillon <dillon@apollo.backplane.com>
Sun, 29 Oct 2017 17:48:15 +0000 (29 10:48 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sun, 29 Oct 2017 17:48:15 +0000 (29 10:48 -0700)
tree7fb4dee95d3bff94fe4a0eb7708856a851d23276
parente4ac94881a81741bb2e9cc4e4fd6071aade2c81e
hammer2 - Fix "hammer2_chain_getparent: no parent" assertion

* Inodes are placed on the pmp->sideq when a flush action is required
  but no vnode association exists.  This is most typically done when
  a vnode is reclaimed.  The sideq code also handles destroying an
  unlinked inode on last-close.

* It is possible for an already-deleted inode (not just unlinked, but
  also deleted from the topology) to wind up on the sideq list, resulting
  in the above assertion.

* Fix the assertion by handling the case.  Just flush the inode normally
  instead of trying to re-delete it.  The related in-memory topology will
  be destroyed automatically.
sys/vfs/hammer2/hammer2_inode.c