diff options
author | phk <phk@FreeBSD.org> | 2001-05-06 21:55:22 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2001-05-06 21:55:22 +0000 |
commit | d95099399d37a681fda4dff26bc0631ea5b988e3 (patch) | |
tree | 7a8b40ff50afe0d7cc1aee2b928221f4ded19339 /sys/kern/subr_disk.c | |
parent | a1f1a879b581a842e4c34c578b4503b28a6e5ff0 (diff) | |
download | FreeBSD-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.c | 6 |
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); |