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