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

git: HAMMER VFS - More cluster_read() fixes


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Sat, 21 Aug 2010 21:31:44 -0700 (PDT)

commit b7de8aa5d2a719f4270304c8e45d7b24e169ffe0
Author: Matthew Dillon <dillon@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



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