DragonFly BSD
DragonFly commits List (threaded) for 2009-10
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: HAMMER - Fix cursor tracking bugs and a few other issues


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 30 Oct 2009 18:32:45 -0700 (PDT)

commit f3a4893b0e844e1ab8c2334d304ebff61aa71ace
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Fri Oct 30 18:29:04 2009 -0700

    HAMMER - Fix cursor tracking bugs and a few other issues
    
    * When recursively removing empty internal nodes from the B-Tree only
      call hammer_cursor_deleted_element() if the related internal
      element is actually removed.  The element might not be removed due
      to the deadlock fail path.
    
    * If hammer_cursor_up_locked() fails fully restore the cursor before
      returning.  The index field was not being restored.
    
    * Acquire the sync lock when recovering a cursor lost due to a deadlock
      in the mirroring code.
    
    * Document and fix an issue in the rebalancing code which could cause a
      cursor to fall off the end of the B-Tree.
    
    Reported-by: YONETANI Tomokazu <qhwt+dfly@les.ath.cx>

Summary of changes:
 sys/vfs/hammer/hammer_btree.c     |   26 ++++++++++++++++++++++++--
 sys/vfs/hammer/hammer_cursor.c    |   21 ++++++++++++++++-----
 sys/vfs/hammer/hammer_mirror.c    |    2 ++
 sys/vfs/hammer/hammer_rebalance.c |   21 +++++++++++++++++++++
 4 files changed, 63 insertions(+), 7 deletions(-)

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


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]