git: sbin/hammer: Don't show FLAG_BADMIRRORTID for root node in certain corner case situation

Tomohiro Kusumi tkusumi at crater.dragonflybsd.org
Sat Feb 28 13:51:12 PST 2015


commit 44cd685c7ff64915c6067e9911cb9d6f03e2eaf8
Author: Tomohiro Kusumi <kusumi.tomohiro at gmail.com>
Date:   Sun Mar 1 05:06:01 2015 +0900

    sbin/hammer: Don't show FLAG_BADMIRRORTID for root node in certain corner case situation
    
    - Make hammer show command stop showwing an error flag regarding
      mirror tid that isn't actually an error.
    
    - newfs_hammer initializes the root node's mirror_tid with 0 along
      with its first two elements, but this mirror_tid is not updated
      till the third element is allocated (by creating a file, etc).
      Following result shows this situation.
    
    - In this situation the root node's node->mirror_tid (==0) being
      smaller than elm->base.create_tid or elm->base.delete_tid is not
      an error. This only happens on the root node because all the other
      nodes get updated when they split from existing ones.
    
         NODE 8000000020800000 cnt=02 p=0000000000000000 type=L depth=0 mirror 0000000000000000 fill=z8:65=1% {
    B-----M	ELM  0 R lo=00000001 obj=0000000000000001 rt=01 key=0000000000000000 ot=01
    	         tids 0000000100000001:0000000000000000
    		 <snip>
    B-----M	ELM  1 R lo=00000002 obj=0000000000000001 rt=15 key=0000000000000000 ot=00
    	         tids 0000000100000001:0000000000000000
    		 <snip>
         }

Summary of changes:
 sbin/hammer/cmd_show.c           | 8 ++++++--
 sbin/newfs_hammer/newfs_hammer.c | 3 +++
 2 files changed, 9 insertions(+), 2 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/44cd685c7ff64915c6067e9911cb9d6f03e2eaf8


-- 
DragonFly BSD source repository



More information about the Commits mailing list