[prev in list] [next in list] [prev in thread] [next in thread] 

List:       dragonfly-commits
Subject:    git: hammer2 - Fix "hammer2_chain_getparent: no parent" assertion
From:       dillon () crater ! dragonflybsd ! org (Matthew Dillon)
Date:       2017-10-29 17:52:01
Message-ID: 20171029175201.89736B1DD252A5 () crater ! dragonflybsd ! org
[Download RAW message or body]


commit d0dd92f61fc6d39c5d9e89cf8d72b2994961cdd4
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Sun Oct 29 10:48:15 2017 -0700

    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.

Summary of changes:
 sys/vfs/hammer2/hammer2_inode.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/d0dd92f61fc6d39c5d9e89cf8d72b2994961cdd4


-- 
DragonFly BSD source repository
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic