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

看板DFBSD_commit作者時間16年前 (2009/10/31 10:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
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
文章代碼(AID): #1AwvfaUh (DFBSD_commit)