DragonFly-2.3.0.838.g4c286c master sys/vfs/hammer hammer.h hammer_btree.c hammer_cursor.c hammer_inode.c hammer_ioctl.h hammer_mirror.c hammer_object.c hammer_ondisk.c hammer_vnops.c

Matthew Dillon dillon at crater.dragonflybsd.org
Wed Apr 29 15:51:32 PDT 2009


commit 4c286c362d37391fa082d7eb6975b4519ff49d91
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Wed Apr 29 15:34:59 2009 -0700

    HAMMER VFS - Better CRC handling, bad-file handling.
    
    Data CRC errors should now generate EIO instead of panic()ing the system.
    B-Tree CRC errors might still panic() and freemap CRC errors WILL still
    panic().
    
    Continuing from DDB on a B-Tree node CRC error when debugging is enabled
    now no longer marks the B-Tree node as good.
    
    The mirror-read command will now transfer data records with bad CRCs
    instead of aborting the transfer, identifying them with a new type field.
    The mirror-write ioctl currently ignores such records.
    
    If a directory entry is encountered and the related inode cannot be
    looked up, generate a dummy in-memory inode of type FIFO to placemark
    the bad directory entry, allowing it to be removed.  Currently it is
    possible for a directory entry to be synced to the media in a different
    transaction then the related inode (a bug which needs to be fixed).
    If a crash occurs at the wrong time the recovery code can leave the media
    in a state where the directory entry exists but the inode does not.  This
    change allows the bad directory entry to be removed.
    
    Reported-by: Antonio Huete Jimenez

Summary of changes:
 sys/vfs/hammer/hammer.h        |   14 ++++-
 sys/vfs/hammer/hammer_btree.c  |    7 ++-
 sys/vfs/hammer/hammer_cursor.c |    2 +-
 sys/vfs/hammer/hammer_inode.c  |  123 ++++++++++++++++++++++++++++++++++++++--
 sys/vfs/hammer/hammer_ioctl.h  |   17 ++++++
 sys/vfs/hammer/hammer_mirror.c |   31 +++++++++-
 sys/vfs/hammer/hammer_object.c |   35 ++++++++----
 sys/vfs/hammer/hammer_ondisk.c |   48 ++++++++++++----
 sys/vfs/hammer/hammer_vnops.c  |   35 +++++++++--
 9 files changed, 271 insertions(+), 41 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/4c286c362d37391fa082d7eb6975b4519ff49d91


-- 
DragonFly BSD source repository





More information about the Commits mailing list