git: HAMMER VFS - More cluster_read() fixes

Matthew Dillon dillon at crater.dragonflybsd.org
Sat Aug 21 21:32:57 PDT 2010


commit b7de8aa5d2a719f4270304c8e45d7b24e169ffe0
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sat Aug 21 21:20:04 2010 -0700

    HAMMER VFS - More cluster_read() fixes
    
    * The recent cluster limiting code was improperly using raw block device
      offsets to calculate the largeblock mask used to prevent clustered I/Os
      from crossing a large-block boundary.
    
      raw block device offsets are not necessarily largeblock aligned, so
      this calculation failed to properly limit cluster_read()s and the
      result was an occassional clustered read would cross-over into an
      incompatible largeblock and later cause an overlapping buffer panic.
    
    * Calculate the proper limit in the hammer_ondisk.c module and refactor
      hammer_io_read().
    
    Reported-by: swildner

Summary of changes:
 sys/vfs/hammer/hammer.h        |    3 +-
 sys/vfs/hammer/hammer_io.c     |   65 +++++----------------------------------
 sys/vfs/hammer/hammer_ondisk.c |   23 +++++++++++++-
 3 files changed, 31 insertions(+), 60 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/b7de8aa5d2a719f4270304c8e45d7b24e169ffe0


-- 
DragonFly BSD source repository





More information about the Commits mailing list