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

DragonFly-2.1.1.150.gdb9f9 master sys/vfs/hammer hammer_blockmap.c


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 26 Dec 2008 11:51:28 -0800 (PST)

commit db9f9d7f3e5ba4db32825e60e606a0e4a0a33083
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Fri Dec 26 11:45:42 2008 -0800

    The blockmap layer1/2 CRCs were being checked without the blockmap lock
    being held.  It was possible for the check to occur while another thread
    was blocked with the layer half-modified, resulting in an assertion but
    NO on-media corruption.
    
    Fix the issue in an optimal manner by rechecking the CRC with the blockmap
    locked when the first check fails.  Only assert if the second check fails.
    
    Reported-by: Matthias Schmidt <matthias@crater.dragonflybsd.org>

Summary of changes:
 sys/vfs/hammer/hammer_blockmap.c |   63 ++++++++++++++++++++++++++++++--------
 1 files changed, 50 insertions(+), 13 deletions(-)

http://gitweb.dragonflybsd.org/?p=dragonfly.git;a=commitdiff;h=db9f9d7f3e5ba4db32825e60e606a0e4a0a33083


-- 
DragonFly BSD source repository



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