git: HAMMER VFS - More cluster_read() fixes

Matthew Dillon dillon at
Sat Aug 21 21:32:57 PDT 2010

commit b7de8aa5d2a719f4270304c8e45d7b24e169ffe0
Author: Matthew Dillon <dillon at>
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
    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(-)

DragonFly BSD source repository

More information about the Commits mailing list