DragonFly- 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(-)


DragonFly BSD source repository

More information about the Commits mailing list