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

Matthew Dillon dillon at crater.dragonflybsd.org
Fri Dec 26 11:52:33 PST 2008


commit db9f9d7f3e5ba4db32825e60e606a0e4a0a33083
Author: Matthew Dillon <dillon at 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 at 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





More information about the Commits mailing list