summaryrefslogtreecommitdiffstats
path: root/sys/dev/vn
diff options
context:
space:
mode:
authordillon <dillon@FreeBSD.org>1999-09-27 00:27:32 +0000
committerdillon <dillon@FreeBSD.org>1999-09-27 00:27:32 +0000
commitb09937d8f3744997aab502521d1c0e3d115fcf44 (patch)
tree0e61832b53ca4babe414497eb29b51de2ab9e4fb /sys/dev/vn
parent510b76a3231122a74e1824a1c14c8871ebab2b17 (diff)
downloadFreeBSD-src-b09937d8f3744997aab502521d1c0e3d115fcf44.zip
FreeBSD-src-b09937d8f3744997aab502521d1c0e3d115fcf44.tar.gz
If the request crosses EOF and bp->b_bcount is not a multiple of
the sector size, the new value for bp->b_bcount was incorrectly calculated. Fixed. Submitted by: Tor.Egge@fast.no
Diffstat (limited to 'sys/dev/vn')
-rw-r--r--sys/dev/vn/vn.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/dev/vn/vn.c b/sys/dev/vn/vn.c
index 377c37d..2994fda 100644
--- a/sys/dev/vn/vn.c
+++ b/sys/dev/vn/vn.c
@@ -334,8 +334,7 @@ vnstrategy(struct buf *bp)
* If the request crosses EOF, truncate the request.
*/
if (pbn + sz > vn->sc_size) {
- bp->b_bcount -= (pbn + sz - vn->sc_size) *
- vn->sc_secsize;
+ bp->b_bcount = (vn->sc_size - pbn) * vn->sc_secsize;
bp->b_resid = bp->b_bcount;
}
bp->b_pblkno = pbn;
OpenPOWER on IntegriCloud