git: HAMMER VFS - Hack cursor iterator when unlocked cursor moved to parent

Matthew Dillon dillon at crater.dragonflybsd.org
Mon Mar 15 10:51:20 PDT 2010


commit 6dc17446feb14cbca471e4eecf2519d215f5054d
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sat Mar 13 21:16:38 2010 -0800

    HAMMER VFS - Hack cursor iterator when unlocked cursor moved to parent
    
    * It is possible to reverse-index a cursor while it is unlocked due to
      a node deletion moving cursors on that node to the parent, and a
      subsequent insertion then inserting new elements between the cursor's
      current position and its expected iteration range.
    
    * Detect the case with a new flag (hack!) HAMMER_CURSOR_ITERATE_CHECK
      and just iterate past the elements outside the iteration range in
      this case.
    
    Reported-by: YONETANI Tomokazu <qhwt+dfly at les.ath.cx>

Summary of changes:
 sys/vfs/hammer/hammer_btree.c  |   89 ++++++++++++++++++++++++++++++++++-----
 sys/vfs/hammer/hammer_cursor.c |   10 ++++-
 sys/vfs/hammer/hammer_cursor.h |    1 +
 3 files changed, 87 insertions(+), 13 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/6dc17446feb14cbca471e4eecf2519d215f5054d


-- 
DragonFly BSD source repository





More information about the Commits mailing list