git: DragonFly_RELEASE_2_8 kernel - Hold vm_token() for certain buf/bio/vm_page interactions
Matthew Dillon
dillon at crater.dragonflybsd.org
Sun Nov 28 09:34:41 PST 2010
commit 3730eb0ba85c1be539aa4917aeefaa78f00a8946
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Sat Nov 27 22:28:52 2010 -0800
kernel - Hold vm_token() for certain buf/bio/vm_page interactions
* Hold the vm_token when messing around with page valid and dirty bits
in buffer cache operations. Such race conditions are possible but would
be very rare.
* Fix inconsistent use of bio2.bio_offset when swapcache intercepts an
I/O operation. When this case occurs the normal filesystem VOP_STRATEGY
function will not be called and any assumption that bio2.bio_offset
will represent a block device offset will be invalid.
To deal with this case swapcache will re-set bio_offset to NOOFFSET.
Filesystems use this value to determine that no block device offset
has been cached for a logical file block.
Reported-by: Jan Lentfer <Jan.Lentfer at web.de> (bio_offset issue)
Summary of changes:
sys/kern/vfs_bio.c | 47 +++++++++++++++++++++++++++++++++++++++--------
1 files changed, 39 insertions(+), 8 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/3730eb0ba85c1be539aa4917aeefaa78f00a8946
--
DragonFly BSD source repository
More information about the Commits
mailing list