mirror of
https://github.com/opnsense/src.git
synced 2026-06-09 08:43:19 -04:00
Only assert the length of the passed bio in the mdstart_vnode() when
the bio is unmapped, so we must map the bio pages into pbuf. This works around the geom classes which do not follow the MAXPHYS limit on the i/o size, since such classes do not know about unmapped bios either. Reported by: Paolo Pinto <paolo.pinto@netasq.com> Sponsored by: The FreeBSD Foundation MFC after: 1 week
This commit is contained in:
parent
9d75ca28f0
commit
60b6e19785
1 changed files with 2 additions and 2 deletions
|
|
@ -746,12 +746,12 @@ mdstart_vnode(struct md_s *sc, struct bio *bp)
|
|||
return (error);
|
||||
}
|
||||
|
||||
KASSERT(bp->bio_length <= MAXPHYS, ("bio_length %jd",
|
||||
(uintmax_t)bp->bio_length));
|
||||
if ((bp->bio_flags & BIO_UNMAPPED) == 0) {
|
||||
pb = NULL;
|
||||
aiov.iov_base = bp->bio_data;
|
||||
} else {
|
||||
KASSERT(bp->bio_length <= MAXPHYS, ("bio_length %jd",
|
||||
(uintmax_t)bp->bio_length));
|
||||
pb = getpbuf(&md_vnode_pbuf_freecnt);
|
||||
pmap_qenter((vm_offset_t)pb->b_data, bp->bio_ma, bp->bio_ma_n);
|
||||
aiov.iov_base = (void *)((vm_offset_t)pb->b_data +
|
||||
|
|
|
|||
Loading…
Reference in a new issue