summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_disk.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2001-05-06 21:55:22 +0000
committerphk <phk@FreeBSD.org>2001-05-06 21:55:22 +0000
commitd95099399d37a681fda4dff26bc0631ea5b988e3 (patch)
tree7a8b40ff50afe0d7cc1aee2b928221f4ded19339 /sys/kern/subr_disk.c
parenta1f1a879b581a842e4c34c578b4503b28a6e5ff0 (diff)
downloadFreeBSD-src-d95099399d37a681fda4dff26bc0631ea5b988e3.zip
FreeBSD-src-d95099399d37a681fda4dff26bc0631ea5b988e3.tar.gz
Make the disk mini-layer check for and handle zero-length transfers
instead of the underlying drivers.
Diffstat (limited to 'sys/kern/subr_disk.c')
-rw-r--r--sys/kern/subr_disk.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/kern/subr_disk.c b/sys/kern/subr_disk.c
index b4932cb..aaa28c8 100644
--- a/sys/kern/subr_disk.c
+++ b/sys/kern/subr_disk.c
@@ -309,6 +309,12 @@ diskstrategy(struct bio *bp)
return;
}
+ if (bp->bio_bcount == 0) {
+ bp->bio_resid = 0;
+ biodone(bp);
+ return;
+ }
+
KASSERT(dp->d_devsw != NULL, ("NULL devsw"));
KASSERT(dp->d_devsw->d_strategy != NULL, ("NULL d_strategy"));
dp->d_devsw->d_strategy(bp);
OpenPOWER on IntegriCloud