Module Name:    src
Committed By:   riastradh
Date:           Mon Mar 30 13:58:03 UTC 2015

Modified Files:
        src/share/man/man9: bufferio.9

Log Message:
Fix example code and emphasize it doesn't handle holes.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/share/man/man9/bufferio.9

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/share/man/man9/bufferio.9
diff -u src/share/man/man9/bufferio.9:1.12 src/share/man/man9/bufferio.9:1.13
--- src/share/man/man9/bufferio.9:1.12	Mon Mar 30 13:40:01 2015
+++ src/share/man/man9/bufferio.9	Mon Mar 30 13:58:03 2015
@@ -1,4 +1,4 @@
-.\"	$NetBSD: bufferio.9,v 1.12 2015/03/30 13:40:01 riastradh Exp $
+.\"	$NetBSD: bufferio.9,v 1.13 2015/03/30 13:58:03 riastradh Exp $
 .\"
 .\" Copyright (c) 2015 The NetBSD Foundation, Inc.
 .\" All rights reserved.
@@ -235,7 +235,8 @@ mbp->b_data = data;
 mbp->b_resid = mbp->b_bcount = datalen;
 mbp->b_flags = B_WRITE;
 
-KASSERT(i < nsegs);
+KASSERT(0 < nsegs);
+KASSERT(datalen == nsegs*segsz);
 for (i = 0; i < nsegs; i++) {
 	struct vnode *devvp;
 	daddr_t blkno;
@@ -246,7 +247,8 @@ for (i = 0; i < nsegs; i++) {
 	if (error == 0 && nbn == -1)
 		error = EIO;
 	if (error) {
-		skipped += segsz;
+		/* Give up early, don't try to handle holes.  */
+		skipped += datalen - i*segsz;
 		break;
 	}
 

Reply via email to